我有以下df
,
A
1.0
2.0
3.0
NaN
我尝试fillna
使用字符串NaN
替换not existed
。
df.fillna(value={'A': 'not existed'}, axis=1, inplace=True)
但是我收到了以下错误,
NotImplementedError: Currently only can fill with dict/Series column by column
如果我使用replace
,它会起作用,
df['A'].replace(np.nan, 'not existed')
我想知道为什么会这样。
答案 0 :(得分:2)
我工作正在删除axis=1
:
print (df)
A B
0 NaN NaN
1 2.0 7.0
2 3.0 8.0
3 NaN 7.0
df.fillna({'A': 'not existed'}, inplace=True)
print (df)
A B
0 not existed NaN
1 2 7.0
2 3 8.0
3 not existed 7.0
df.fillna({'A': 'not existed', 'B':'nwwww'}, inplace=True)
print (df)
A B
0 not existed nwwww
1 2 7
2 3 8
3 not existed 7
答案 1 :(得分:1)
在DataFrame上使用fillna时,您应该传递一个字典,其中包含您要填充的每列的值,如here所述。
在任何情况下,您的错误都与使用axis
的方式有关,请查看此工作示例:
import pandas
x = pandas.DataFrame({
'x_1': [0, 1, 2, 3, 0, 1, 2, None, ],},
index=[0, 1, 2, 3, 4, 5, 6, 7])
x.fillna(value={'x_1': 'not existed',}, axis=0, inplace=True)