我有一个数据库:
Date 14/06/2019
0 08/06/2019 some data
1 07/06/2019 some data
2 08/06/2019 NaN
3 06/06/2019 NaN我希望输出为:
Date
0 14/06/2019
1 14/06/2019
2 08/06/2019
3 06/06/2019意思是,我想删除"14/06/2019“列,覆盖"14/06/2019”列中有一些数据的"Date“列的行,并保留"14/06/2019”列的行是NaN的行。
发布于 2020-01-22 14:56:14
使用DataFrame.pop提取列14/06/2019,使用Series.notna测试缺少的值,并使用DataFrame.loc覆盖匹配条件的值
df.loc[df.pop('14/06/2019').notna(), 'Date'] = "14/06/2019"df['Date'] = df['Date'].where(df.pop('14/06/2019').isna(), "14/06/2019")
#alternative with mask and notna
#df['Date'] = df['Date'].mask(df.pop('14/06/2019').notna(), "14/06/2019")df['Date'] = np.where(df.pop('14/06/2019').notna(), "14/06/2019", df['Date'])
print (df)
Date
0 14/06/2019
1 14/06/2019
2 08/06/2019
3 06/06/2019https://stackoverflow.com/questions/59854158
复制相似问题