解决DataFrame使用pivot_table透视时的TypeError错误
解决pivot_table报错:TypeError: got multiple values for argument 'values'
嘿,我看到你在使用pandas的pivot_table时遇到了参数冲突的错误,咱们来快速定位问题并解决它!
错误原因分析
你写的代码是:
dropped_col.pivot_table(dropped_col, values = 'count', index='date', columns = 'item').reset_index()
这里的问题在于:当你用DataFrame实例调用pivot_table方法时(也就是dropped_col.pivot_table(...)),方法会自动把当前的DataFrame作为第一个参数(data参数)传入。而你又手动把dropped_col写在了第一个参数的位置,这就导致values参数被重复赋值——方法既收到了自动传入的data,又把你写的第一个dropped_col当成了其他参数,最终触发了TypeError。
修正方案
你只需要去掉手动传入的第一个dropped_col参数就可以了,修正后的代码如下:
dropped_col.pivot_table(values='count', index='date', columns='item').reset_index()
另外,如果你习惯用pandas的顶层函数调用方式,也可以这么写(记得先导入pandas:import pandas as pd):
pd.pivot_table(dropped_col, values='count', index='date', columns='item').reset_index()
验证结果
运行修正后的代码后,你会得到完全符合预期的结构:
Date A B C 0 23-May-18 7 7 7 1 24-May-18 6 6 6 2 25-May-18 5 5 5
(注:如果想要Date作为普通列而不是索引的一部分,reset_index()已经帮你处理好了;如果希望Date保持为索引,可以去掉这个方法调用。)
内容的提问来源于stack exchange,提问作者Ann Kriebel
相关产品推荐
相关产品推荐

