我想使用熊猫创建一个非常长的数据透视表。
我导入一个.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,但是此时我不能向前移动。
答案 0 :(得分:0)
所以这个问题分为两个部分。
首先,该字典的创建不正确。
x= dict(zip(keys['a'],keys['b']))
第二,使用np.count_nonzero
代替了nunique
。