将长的字典传递到aggfunc熊猫python

时间:2019-06-01 12:46:37

标签: python 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

我创建一个数据框并将其转换为dict:

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

我现在有要输入到aggfunc中的对象x,但是此时我不能向前移动。

1 个答案:

答案 0 :(得分:0)

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

首先,该字典的创建不正确。

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

第二,使用np.count_nonzero代替了nunique