Pandas:重复的级别名称:<列名称>,分配给级别 1,已用于级别 0。”

时间:2021-04-20 07:40:49

标签: python pandas

Item              AddDate                     COUNT(Number)
Item 3         2021-01-05                     111
Item 3         2021-01-06                     223
Item 3         2021-01-07                     44
Item 3         2021-01-26                     431
Item 3         2021-01-25                     12
Item 3         2020-12-25                     43
Item 1         2021-01-19                     53
Item 1         2021-01-18                     12
Item 2         2021-04-06                     15
Item 2         2020-11-30                     132

我有一个如上所示的 Pandas 数据框(类型为 <class 'pandas.core.frame.DataFrame'>

我试图通过这样做来生成一个pivot_table

df = df.pivot_table(
                index='AddDate',
                columns=['AddDate', 'Item'],
                values='COUNT(Number)',
                fill_value=0,
                aggfunc=sum)

这给了我Duplicated level name: \"AddDate\", assigned to level 1, is already used for level 0."

我尝试将 AddDate 列名称更改为其他名称,但没有解决问题。 有什么帮助吗?

1 个答案:

答案 0 :(得分:1)

似乎存在错误分配的参数 columns=['AddDate', 'Item'],因此使用 AddDate 来生成新的索引值 (index='AddDate'),而且 MultiIndex 也用于 AddDate, Item } 组合(columns=['AddDate', 'Item'])。

我认为你只需要columns='Item'

df = df.pivot_table(
                index='AddDate',
                columns='Item',
                values='COUNT(Number)',
                fill_value=0,
                aggfunc=sum)
相关问题