【问题标题】:Python pandas pivot_table multiple time indicesPython pandas pivot_table 多个时间索引
【发布时间】:2020-01-22 21:15:43
【问题描述】:

我有以下数据框:

import pandas as pd
import datetime

df = pd.DataFrame({'T': [datetime.datetime.now(), datetime.datetime.now()], 'V': [1, 2]})

我想同时使用年份和月份作为索引进行旋转,我可以这样做:

df.pivot_table(index = [df['T'].dt.year, df['T'].dt.month], values = 'V')

但是,由于这给了我两个名为 T 的列,我无法设置 margins = True(抛出错误:The name T occurs multiple times, use a level number)。我该如何解决这个问题?理想情况下,我想在进行数据透视时手动命名列,这样我就有YearMonth而不是TT

有什么想法吗?

【问题讨论】:

  • 哦,这很简单,不知道我在想什么。谢谢!

标签: python pandas pivot-table


【解决方案1】:

IIUC,您可以使用rename 重命名您的系列,

df.pivot_table(index = [df['T'].dt.year.rename('Year'),
                        df['T'].dt.month.rename('Month')], 
                values='V',
                aggfunc='sum', 
                margins=True)

输出:

              V
Year Month     
2020 1        3
All           3

【讨论】:

    猜你喜欢
    • 2016-07-21
    • 1970-01-01
    • 2022-09-30
    • 2023-04-08
    • 2017-01-27
    • 2013-08-12
    • 1970-01-01
    • 1970-01-01
    • 2020-09-05
    相关资源
    最近更新 更多