【发布时间】:2016-12-12 06:55:47
【问题描述】:
我有一个数据集,其中包含超过 150,000 条电视节目数据记录、数十个频道,但并非所有频道都有整天的数据。
我想按频道、年份和月份对它们进行分组,计算每个频道每个月有多少天有记录。
这里是一小块数据框
df = pd.DataFrame(
{"channel": {"631": "CBR", "632": "CBR", "633": "CBR"}, "year": {"631": "2014", "632": "2014", "633": "2014"},
"month": {"631": "01", "632": "01", "633": "01"}, "day": {"631": "06", "632": "06", "633": "06"},
"t1": {"631": 1388967300000, "632": 1388973300000, "633": 1388974500000},
"title": {"631": "title 1", "632": "title 2", "633": "title 3"}})
我试过用这种方式分组
grouped = df.groupby(['channel', 'year','month', 'day']).count().reset_index()
所以我在第 12 个月得到了一个频道的这个结果。
但我想要计算每个月每个频道存在多少天。
对于上面的示例,我将有
WBT | 2014 | 12 | 31
我正在使用 python 3.5.2 和 Pandas 0.19.1。
感谢您的任何建议。
【问题讨论】:
-
这就是你想要的:
df.groupby(['channel', 'year','month'])['day'].nunique().reset_index()? -
感谢@MaxU,它正是我所需要的。