熊猫使用字典根据列将空值替换为

时间:2019-11-10 18:11:30

标签: pandas replace

我有一个包含几十列的数据框。我想用特定的数字或字符串替换NaN或空值,具体取决于列。有没有可行的字典方法?下面的字典示例,不确定如何将其应用于数据框。使用Python 2.7

mydict ={'ColA': -999, 'ColB': -888, 'ColC': 'TBD'}

2 个答案:

答案 0 :(得分:0)

这有效:

# 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)

答案 1 :(得分:0)

只需使用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