【问题标题】:Pandas: key error when passing margins=True in pivot_tablePandas:在 pivot_table 中传递边距 = True 时出现关键错误
【发布时间】:2020-11-19 11:28:08
【问题描述】:

在 Pandas pivot_table 中传递 margins=True 时出现关键错误。以下是一些示例数据:

import pandas as pd
import numpy as np

df = pd.DataFrame({'System_Key':['MER-002', 'MER-003', 'MER-004', 'MER-005', 'BAV-378', 'BAV-379', 'BAV-380', 'BAV-381', 'AUD-220', 'AUD-221', 'AUD-222', 'AUD-223'],
                   'Manufacturer':['Mercedes', 'Mercedes', 'Mercedes', 'Mercedes', 'BMW', 'BMW', 'BMW', 'BMW', 'Audi', 'Audi', 'Audi', 'Audi'],
                   'Region':['Americas', 'Europe', 'Americas', 'Asia', 'Asia', 'Europe', 'Europe', 'Europe', 'Americas', 'Asia', 'Americas', 'Americas'],
                   'Department':[np.nan, 'Sales', np.nan, 'Operations', np.nan, np.nan, 'Accounting', np.nan, 'Finance', 'Finance', 'Finance', np.nan]
                  })

    System_Key  Manufacturer    Region       Department
0   MER-002     Mercedes        Americas     NaN
1   MER-003     Mercedes        Europe       Sales
2   MER-004     Mercedes        Americas     NaN
3   MER-005     Mercedes        Asia         Operations
4   BAV-378     BMW             Asia         NaN
5   BAV-379     BMW             Europe       NaN
6   BAV-380     BMW             Europe       Accounting
7   BAV-381     BMW             Europe       NaN
8   AUD-220     Audi            Americas     Finance
9   AUD-221     Audi            Asia         Finance
10  AUD-222     Audi            Americas     Finance
11  AUD-223     Audi            Americas     NaN

我旋转数据框,如下:

df.pivot_table(df, index='Manufacturer', columns='Region', values='System_Key', aggfunc='size', fill_value=0, margins=True).astype(int)

这给了我以下错误:

KeyError: 'Americas'

有谁知道是什么导致了这个关键错误?提前致谢!

【问题讨论】:

标签: python pandas


【解决方案1】:

使用count 代替size 有效。可能size 不起作用,因为缺少某些组合:

df.pivot_table(index='Manufacturer', columns='Region', 
               values='System_Key', aggfunc='count',
               fill_value=0, margins=True)

输出:

Region        Americas  Asia  Europe  All
Manufacturer                             
Audi                 3     1       0    4
BMW                  0     1       3    4
Mercedes             2     1       1    4
All                  5     3       4   12

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-04
    • 2021-04-03
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    相关资源
    最近更新 更多