pandas 中dataframe 选择列后 fillna() 使用inplace参数,不改变源数据。
df4=pd.DataFrame(data=np.arange(0,20).reshape(5,4),columns=['c1','c2','c3','c4'],index=range(0,5))
df4.loc[2,'c2']=np.nan
df4
df4为
c1 c2 c3 c4
0 0 1.0 2 3
1 4 5.0 6 7
2 8 NaN 10 11
3 12 13.0 14 15
4 16 17.0 18 19
举例,
df4[['c1','c2','c3']].fillna(0,inplace=True,)
df4
输出为
c1 c2 c3 c4
0 0 1.0 2 3
1 4 5.0 6 7
2 8 NaN 10 11
3 12 13.0 14 15
4 16 17.0 18 19
推测 df4[[‘c1’,‘c2’,‘c3’]] 已生成一个新的dataframe.
显式赋值方法就可以。
df4[['c1','c2','c3']] = df4[['c1','c2','c3']].fillna(0)
df4
c1 c2 c3 c4
0 0 1.0 2 3
1 4 5.0 6 7
2 8 0.0 10 11
3 12 13.0 14 15
4 16 17.0 18 19