Pandas 使用字典将空替换为基于列的值
我有一个包含几十列的数据框架。我想用特定的数字或字符串替换NaN或空值,具体取决于列。是否有一种词典方法可以奏效?下面的字典示例,不确定如何将其应用于数据帧。使用Python2.7Pandas 使用字典将空替换为基于列的值,pandas,replace,Pandas,Replace,我有一个包含几十列的数据框架。我想用特定的数字或字符串替换NaN或空值,具体取决于列。是否有一种词典方法可以奏效?下面的字典示例,不确定如何将其应用于数据帧。使用Python2.7 mydict ={'ColA': -999, 'ColB': -888, 'ColC': 'TBD'} 这项工作: # mydf = dataframe already in working memory mydict = {'ColA': -999, 'ColB': -888, 'ColC': 'TBD'} df
mydict ={'ColA': -999, 'ColB': -888, 'ColC': 'TBD'}
这项工作:
# mydf = dataframe already in working memory
mydict = {'ColA': -999, 'ColB': -888, 'ColC': 'TBD'}
df_clean = mydf
for col in mydict:
fill_val = mydict.get(col)
df_clean[col] = df_clean[col].fillna(fill_val)
只需使用pandas.DataFrame.fillna:
import pandas as pd
df = pd.DataFrame({'ColA': [1, np.nan, 3], 'ColB':[10, np.nan, 30], 'ColC':[100, np.nan, 300]})
mydict ={'ColA': -999, 'ColB': -888, 'ColC': 'TBD'}
new_df = df.fillna(mydict)
print(new_df)
输出:
ColA ColB ColC
0 1.0 10.0 100
1 -999.0 -888.0 TBD
2 3.0 30.0 300