Сценария здесь является то, что у меня есть dataframe сырьёх целочисленных данных, а ДИКТ, который отображает этот Интс в строку значенияЕсть ли способ сделать это на Series.map?
Мне нужно заменить значения в dataframe с соответствующими значениями из карты, но сохраните исходное значение, если оно не сопоставимо ни с чем.
До сих пор единственный способ, которым я смог выяснить, как сделать то, что я хочу, - использовать временный столбец. Однако, с размером данных, с которыми я работаю, иногда это может быть немного волосатым. А так, мне было интересно, если есть какой-то трюк, чтобы сделать это в панд без необходимости столбец Темп ...
import pandas as pd
import numpy as np
data = pd.DataFrame(np.random.randint(1,5, size=(100,1)))
map_array = {1:'one', 2:'two', 4:'four'}
data['__temp__'] = data[0].map(map_array, na_action=None)
#I've tried varying the na_action arg to no effect
nan_index = data['__temp__'][data['__temp__'].isnull() == True].index
data['__temp__'].ix[nan_index] = data[0].ix[nan_index]
data[0] = data['__temp__']
data = data.drop(['__temp__'], axis=1)
спасибо. хит для изменения типов столбцов - это тот, который мне нужно принимать в любом случае, так что все в порядке. – badideas