【发布时间】:2022-10-13 14:29:35
【问题描述】:
我想删除全部如果指定列的最后一行是 nan,则为行和列。目前,我只删除所有列的最后一行。
下面,如果Volume 中的最后一行是 nan,那么我想从每一列中删除所有行。如果 nan 出现在 df 的其他任何位置,则保持原样。
df = pd.DataFrame({'Datetime' : ['2022-10-10 01:44:00','2022-10-10 01:45:00','2022-10-10 01:46:00','2022-10-10 01:47:00','2022-10-10 01:48:00'],
'Val' : [0.97,0.97,0.95,0.93,0.96],
'Volume' : [0,0,np.NaN,0,np.NaN],
})
df2 = pd.DataFrame({'Datetime' : ['2022-10-10 01:44:00','2022-10-10 01:45:00','2022-10-10 01:46:00','2022-10-10 01:47:00','2022-10-10 01:48:00'],
'Val' : [0.97,0.97,0.95,0.93,0.96],
'Volume' : [0,0,np.NaN,0,np.NaN],
})
df = df.loc[:df['Volume'].last_valid_index()]
print(df)
出去:
Datetime Val Volume
0 2022-10-10 01:44:00 0.97 0.0
1 2022-10-10 01:45:00 0.97 0.0
2 2022-10-10 01:46:00 0.95 NaN
3 2022-10-10 01:47:00 0.93 0.0
预期输出:
Empty DataFrame
Columns: []
Index: []
【问题讨论】: