这里的情境是我有一个包含原始整数数据的数据框df,以及一个将这些整数映射到字符串值的字典map_array。
我需要用地图中相应的值替换数据框中的值,但如果没有映射到任何值,则保留原始值。
到目前为止,我唯一能想到实现我的需求的方法是使用一个临时列。然而,由于我正在处理的数据规模较大,这可能会有点棘手。因此,我想知道是否有一些技巧可以在pandas中完成这个任务,而不需要临时列...
我需要用地图中相应的值替换数据框中的值,但如果没有映射到任何值,则保留原始值。
到目前为止,我唯一能想到实现我的需求的方法是使用一个临时列。然而,由于我正在处理的数据规模较大,这可能会有点棘手。因此,我想知道是否有一些技巧可以在pandas中完成这个任务,而不需要临时列...
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randint(1,5, size=(100,1)))
map_array = {1:'one', 2:'two', 4:'four'}
df['__temp__'] = df[0].map(map_array, na_action=None)
#I've tried varying the na_action arg to no effect
nan_index = data['__temp__'][df['__temp__'].isnull() == True].index
df['__temp__'].ix[nan_index] = df[0].ix[nan_index]
df[0] = df['__temp__']
df = df.drop(['__temp__'], axis=1)