【发布时间】:2021-11-29 10:43:12
【问题描述】:
给定一个数据样本如下:
date value1 value2 value3
0 2021-10-12 1.015 1.115668 1.015000
1 2021-10-13 NaN 1.104622 1.030225
2 2021-10-14 NaN 1.093685 NaN
3 2021-10-15 1.015 1.082857 NaN
4 2021-10-16 1.015 1.072135 1.077284
5 2021-10-29 1.015 1.061520 1.093443
6 2021-10-30 1.015 1.051010 1.109845
7 2021-10-31 1.015 NaN 1.126493
8 2021-11-1 1.015 NaN NaN
9 2021-11-2 1.015 1.020100 NaN
10 2021-11-3 NaN 1.010000 NaN
11 2021-11-30 1.015 1.000000 NaN
假设我想在 2021 年 11 月删除 所有值为 NaNs 的列,这意味着范围为 2021-11-01 到 2021-11-30(包括开始和结束日期) .
根据此要求,vlue3 将被删除,因为它在 2021-11 中的所有值都是 NaNs。其他列在2021-11 中有NaNs,但不是全部,因此将保留这些列。
我如何在 Pandas 中实现这一点?谢谢。
编辑:
df['date'] = pd.to_datetime(df['date'])
mask = (df['date'] >= '2021-11-01') & (df['date'] <= '2021-11-30')
df.loc[mask]
输出:
date value1 value2 value3
8 2021-11-01 1.015 NaN NaN
9 2021-11-02 1.015 1.0201 NaN
10 2021-11-03 NaN 1.0100 NaN
11 2021-11-30 1.015 1.0000 NaN
【问题讨论】:
标签: python-3.x pandas dataframe