我目前正在开发一个拥有每个成员订阅日期的数据框。我想每月统计订阅,但默认行为会分别计算每个月的每个日期。
我找到了一种方法,可以使用切片修改日期并在01上设置每个日期日,但我宁愿使用由熊猫制作的东西。
关于我应该去哪里的任何建议?
答案 0 :(得分:2)
如果您的订阅日期是datetime.datetime
个实例,那么您可以使用(未经测试的)类似的内容(df
是您的DataFrame
):
df.groupby(lambda L: (L.year, L.month))
如果日期时间不是您的DataFrame索引,则需要调整groupby。
答案 1 :(得分:1)
这有帮助吗?
让我们创建一个包含会员ID和订阅日期的系列。
In [21]: s = pandas.Series(range(100), pandas.date_range('2010-10-10', periods=100))
按年份和月份分组,计算每个(年/月)组合的订阅数量。
In [22]: grouped = s.groupby([s.index.year, s.index.month])
In [23]: nr_subscriptions = grouped.count()
In [24]: nr_subscriptions.index.names = ['Year', 'Month']
In [25]: nr_subscriptions.names = 'nr_subscriptions'
In [26]: nr_subscriptions
Out[26]:
Year Month
2010 10 22
11 30
12 31
2011 1 17