如何将日期列级分组并替换为包含相应ISO周号的列级

发布于 2025-02-08 22:11:27 字数 732 浏览 2 评论 0原文

我有一个具有以下列级别的数据框:

”在此处输入图像描述

我想将日期级别分组到相应的ISO周数,并且输出等于:

​如下:

df = df.groupby(
            lambda d: d.isocalendar().week,
            level='DATE', axis='columns'
     ).sum()
df.columns.rename('WK', inplace=True)

结果:

”“在此处输入图像描述”

这是我想要的一部分,但是我想保留列的其他级别的多索引(在这种情况下为Year and Cat)。一年是整数,而猫可以是字符串或分类。

I have a dataframe with the following column levels:

enter image description here

I would like to groupby the DATE level to the corresponding iso week number, and have the output equal to:

enter image description here

I tried the following:

df = df.groupby(
            lambda d: d.isocalendar().week,
            level='DATE', axis='columns'
     ).sum()
df.columns.rename('WK', inplace=True)

results in:

enter image description here

which is part of what I want, but I would like to keep the other levels of the column MultiIndex (YEAR and CAT in this case). Where Year is an integer, and CAT could be string, or categorical.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

零度° 2025-02-15 22:11:27

您可以首先重命名日期几周,然后按所有4个列中的多4级汇总 :

df = (df.rename(columns=lambda d: d.isocalendar().week, level='DATE')
        .groupby(level=[0,1,2,3], axis=1)
        .sum())

You can first rename level DATE for weeks and then aggregate sum per all 4 levels of MultiIndex in columns:

df = (df.rename(columns=lambda d: d.isocalendar().week, level='DATE')
        .groupby(level=[0,1,2,3], axis=1)
        .sum())
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文