我有一个具有两级多重索引的数据帧。第一级date
是DatetimeIndex,第二级name
只是一些字符串。数据间隔10分钟。在
如何在这个多重索引的第一级按日期分组并计算每天的行数?
我怀疑DatetimeIndex耦合到多索引中会给我带来问题,因为
data.groupby(pd.TimeGrouper(freq='D')).count()
给了我
^{pr2}$我也试过写作
data.groupby(data.index.levels[0].date).count()
从而导致
ValueError: Grouper and axis must be same length
例如,我如何使grouper变长(即,包含重复的索引值,而忽略这些值,现在会使它比轴短)?在
谢谢!在
假设数据帧如下所示
只能为此分组操作从索引中删除名称
^{pr2}$您可以在
Grouper
中使用level
关键字。(另请注意,TimeGrouper
已弃用)。这个参数是示例数据帧:
解决方案:
^{pr2}$更新:您在评论中指出,您希望删除的结果计数为零。例如,假设您的数据帧实际上丢失了几天:
据我所知,没有办法排除
.count
内的零计数。相反,您可以使用上面的结果来删除0。在第一个解决方案(可能不太可取,因为当引入
np.nan
时,它将和int
结果转换为float
,这可能是在我看来,第二个更好的解决方案是here:
.any
来自NumPy,被移植到pandas,当请求的轴上有任何元素为True时返回True。在相关问题 更多 >
编程相关推荐