我想计算并计划“支付”的数量'此数据框中2018-04-01至2018-05-01期间的日期值:
df['payout'].head(10)
0 2017-02-14 11:00:06
1 2015-03-14 11:00:06
2 2014-04-14 11:00:06
3 2017-11-14 11:00:06
4 2016-12-14 11:00:06
5 2018-04-10 11:00:06
6 2018-04-11 11:00:06
7 2018-04-12 11:00:06
8 2018-04-13 11:00:06
9 2018-04-14 11:00:06
我可以获得2018年的日期情节:
(df.loc[df['payout'].dt.year.between(2018, 2019), 'payout']
.dt.to_period('D')
.value_counts()
.sort_index()
.plot(kind="bar")
)
如何将地块缩减至2018年4月?
谢谢
答案 0 :(得分:3)
只需检查月份和年份,并使用当前的方法
df.loc[(df.date.dt.month == 4) & (df.date.dt.year == 2018), 'payout']
答案 1 :(得分:1)
您可以使用您使用的相同逻辑,但使用您感兴趣的日期字符串:
(df.loc[df['payout'].between('2018-04-01', '2018-04-30'), 'payout']
.dt.to_period('D')
.value_counts()
.sort_index()
.plot(kind="bar")
)
答案 2 :(得分:1)
另一种解决方案:
df[(df['date'] >= '2018-04-01') & (df['date'] < '2018-05-01')]['payout']
答案 3 :(得分:1)
df.set_index('payout').loc['2018-04-01':'2018-04-30']
第一行应该这样做。
.set_index
使您的付款列成为索引。这不会修改原始df
。有关详细信息,请参阅the docs。DatetimeIndex
,你可以直接用.loc
索引日期字符串。请注意,与正常索引不同,这将包括4月30日的所有24小时。