【问题标题】:passing a long dict into aggfunc pandas python pivot_table将一个长字典传递给 aggfunc pandas python pivot_table
【发布时间】:2019-06-04 01:18:21
【问题描述】:

我想使用 pandas 创建一个很长的数据透视表。

我导入一个 .csv 文件,创建数据框 df。 .csv 文件如下所示:

LOC,surveyor_name,test_a,test_b
A,Bob,FALSE,FALSE
A,Bob,TRUE,TRUE
B,Bob,TRUE,FALSE
B,Ryan,TRUE,TRUE

我在这里设置了基本的数据透视表,在索引 LOC 上创建数据透视表

table = pd.pivot_table(df, values=['surveyor_name'], index=['LOC'],aggfunc={'surveyor_name': np.count_nonzero})

我想将每个列标题的字典传递到 aggfunc 部分

我创建了一个包含列标题列表和聚合函数的 csv,即:

a,b
surveyor_name, np.count_nonzero
test_a,np.count_nonzero
test_b,np.count_nonzero

我在这里创建一个数据框并将这个数据框转换为一个字典:

keys = pd.read_csv('keys.csv')
x = keys.to_dict()

我现在有我想进入 aggfunc 的对象 x,但此时我无法前进。

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    所以这个问题分为两部分。

    首先,dict的创建不正确。

    x= dict(zip(keys['a'],keys['b'])) 
    

    其次,使用nunique 代替np.count_nonzero 有效。

    【讨论】:

      猜你喜欢
      • 2018-02-04
      • 2021-03-03
      • 2019-02-11
      • 1970-01-01
      • 1970-01-01
      • 2016-12-22
      • 1970-01-01
      • 2018-08-20
      • 1970-01-01
      相关资源
      最近更新 更多