我目前正在处理每个成员都有订阅日期的数据框。我想统计每个月的订阅量,但默认行为会分别计算每个月的每个日期。
我找到了一种使用切片修改日期并将每个日期设置为 01 的方法,但我宁愿使用熊猫制作的东西。
关于我应该去哪里的任何建议?
如果您的订阅日期是一个datetime.datetime
实例,那么您可以使用(未经测试)类似(df
您的在哪里DataFrame
):
df.groupby(lambda L: (L.year, L.month))
如果日期时间不是 DataFrame 的索引,则需要调整 groupby。
这有帮助吗?
让我们创建一个包含会员 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