如果第一列有NaN,如何用NaN填充第二列?
我试过这个
df1.type2.fillna(value=df1.type1, inplace=True)
输入
,type1,type2
2020-01-02 6:00,NaN,ABC
2020-01-02 12:00,NaN,DEF
2020-01-02 18:00,60,GHI
输出
,type1,type2
2020-01-02 6:00,NaN,NaN
2020-01-02 12:00,NaN,NaN
2020-01-02 18:00,60,GHI
将DataFrame.loc
与Series.isna
:一起使用
df.loc[df.type1.isna(), 'type2'] = np.nan
或默认值为NaN
的Series.mask
,因此无需设置:
df['type2'] = df['type2'].mask(df.type1.isna())
print (df)
type1 type2
2020-01-02 6:00 NaN NaN
2020-01-02 12:00 NaN NaN
2020-01-02 18:00 60.0 GHI
您也可以使用panda。DataFrame.where
>>> df.type2.where(df.type1.notna(),inplace=True)
>>> df
Unnamed: 0 type1 type2
0 2020-01-02 6:00 NaN NaN
1 2020-01-02 12:00 NaN NaN
2 2020-01-02 18:00 60.0 GHI