从这段代码开始:
import pandas as pd
df = pd.read_csv('file.csv')
df['Data'] = pd.to_datetime(df['Data'], format='%d/%m/%Y %H:%M')
df.set_index('Data' , inplace=True)
数据框是这样的:
Data a b c
2017-04-25 15:00:00 2 1 25
2017-04-25 16:00:00 4 7 nan
2017-04-25 17:00:00 4 6 nan
2017-04-25 18:00:00 5 9 34
如果np.nan在c列中,目标是用np.nan替换a和b列中的所有值。期望的输出:
Data a b c
2017-04-25 15:00:00 2 1 25
2017-04-25 16:00:00 nan nan nan
2017-04-25 17:00:00 nan nan nan
2017-04-25 18:00:00 5 9 34
答案 0 :(得分:0)
这可行,但不是很优雅。希望其他人有更好的解决方案。
df['a'] = df.loc[~df['c'].isnull()]['a']
df['b'] = df.loc[~df['c'].isnull()]['b']
或者在一行中:
df[['a','b']] = df.loc[~df['c'].isnull()][['a','b']]