我有以下模式:
H T datetime
002599f58 A 2019-09-23
002599f58 A 2019-09-23
002599f58 A 2019-09-23
002599f58 A 2019-09-26
002599f58 C 2019-09-26
005344fe8 C 2019-09-30
005344fe8 D 2019-10-02
005344fe8 D 2019-10-05
我需要做的是计算H在T中的不同天数。我尝试了:
grouper = Grouper(key="datetime", freq="1D")
df = cdr.groupby(["H", "T", grouper])["datetime"].nunique().reset_index(name="numdays")
以及其他类型,如size()
。我现在有14天,但当我对值进行排序时,它们给我的数字大于14,所以我知道这些是错误的,但我不知道为什么
预期的输出是数据帧
H T numdays
002599f58 A 2 (23 & 26)
002599f58 C 1 (26)
005344fe8 C 1 (30)
005344fe8 D 2 (02 & 05)
这告诉我,对于每个不同的H和T,H在T中的不同天数,其中numdays
不能大于14(因为这是我所有的天数)。我不需要parens中的数据,只是用来显示值的来源
我认为您需要删除} :
Grouper
,对于日期添加^{您可以通过将输出转换为列表来测试新旧解决方案:
相关问题 更多 >
编程相关推荐