【发布时间】:2018-01-09 19:54:47
【问题描述】:
我通过合并 2 个数据框并删除重复行创建了一个数据框。是否有一个命令允许我通过删除特定列的日期低于今天的日期/过期的行来进一步过滤此数据框?
【问题讨论】:
-
df = df[~(df['Date'] < date_today)]
标签: python sql database pandas dataframe
我通过合并 2 个数据框并删除重复行创建了一个数据框。是否有一个命令允许我通过删除特定列的日期低于今天的日期/过期的行来进一步过滤此数据框?
【问题讨论】:
df = df[~(df['Date'] < date_today)]
标签: python sql database pandas dataframe
使用boolean indexing 或query,但需要反转条件 - 过滤当前和更高的值:
rng = pd.date_range('2017-08-01', periods=10)
df = pd.DataFrame({'Date': rng, 'a': range(10)})
print (df)
Date a
0 2017-08-01 0
1 2017-08-02 1
2 2017-08-03 2
3 2017-08-04 3
4 2017-08-05 4
5 2017-08-06 5
6 2017-08-07 6
7 2017-08-08 7
8 2017-08-09 8
9 2017-08-10 9
df1 = df[df['Date'] >= pd.datetime.today()]
print (df1)
Date a
2 2017-08-03 2
3 2017-08-04 3
4 2017-08-05 4
5 2017-08-06 5
6 2017-08-07 6
7 2017-08-08 7
8 2017-08-09 8
9 2017-08-10 9
date_today = pd.datetime.today()
df1 = df.query("Date >=@date_today")
print (df1)
Date a
2 2017-08-03 2
3 2017-08-04 3
4 2017-08-05 4
5 2017-08-06 5
6 2017-08-07 6
7 2017-08-08 7
8 2017-08-09 8
9 2017-08-10 9
【讨论】:
pd.datetime.today() 每天生成 date - 例如明天2017-09-02。有问题吗?
✓) 将其从灰色切换为已填充。谢谢。