【发布时间】:2020-10-23 21:56:07
【问题描述】:
无法为我的问题找到解决方案。
假设我有一个 df:
df = pd.DataFrame({'col':np.random.randn(len(date_rng)),'created_at':pd.date_range('2020-01-01', '2020-12-31', freq='D')})
df
输出是:
col created_at
0 1.764052 2020-01-01
1 0.400157 2020-01-02
2 0.978738 2020-01-03
3 2.240893 2020-01-04
4 1.867558 2020-01-05
... ... ...
361 0.003771 2020-12-27
362 0.931848 2020-12-28
363 0.339965 2020-12-29
364 -0.015682 2020-12-30
365 0.160928 2020-12-31
所以问题是我想过滤数据框以显示过去 6 个月到本月的第一天。例如,如果今天(2020 年 10 月 23 日),我希望数据框带来 4 月 1 日的结果。
在 11 月时,第一个日期结果应为 5 月 1 日,而与 11 月日期无关。
有什么想法吗?
这应该是自动运行的,所以类似于:
df = df[(df.created_at.dt.month >= datetime.datetime.utcnow().month)
& (df.created_at.dt.year==datetime.datetime.utcnow().year)]
不会工作。
谢谢!!!
【问题讨论】: