代码之家  ›  专栏  ›  技术社区  ›  Nikki101

Pandas透视表-意外的关键字“cols”

  •  0
  • Nikki101  · 技术社区  · 9 年前

    我正在尝试使用pd.pivot_table创建透视表。

    df1=df.pivot('Partner','Year','Value')
    

    工作没有问题,并生成一个表

    Year                        2011       2012       2013       2014
    Partner                                                            
    Albania                   0.000693   0.000663        NaN        NaN
    Areas, nes                0.002310   0.014177   0.492017   0.633261 
    Armenia                        NaN   0.000145        NaN        NaN
    Belgium                   0.390415   0.400312   0.493444   0.643490
    Brazil                    0.000231   0.000362   0.000518   0.000234
    China                     0.024488   0.000443   0.000085   0.000052
    Colombia                  0.425991   0.447333   0.488582   0.538809
    

    但是,正在创建my_pivot;

    def my_pivot(rows, values, aggfunc, plt=True):
        dfp = df
        piv = pivot_table(dfp, values=values, rows=rows, cols=cols,     aggfunc=aggfunc)
        print piv
        if plt: 
            plot(piv)
            show()
    
    
    my_pivot(values = df['Value'], rows=df['Partner'], cols=df['Year'], aggfunc=np.sum,plt=True)
    

    产生错误;

    TypeError: my_pivot() got an unexpected keyword argument 'cols'
    

    我不知道为什么这行不通,有人有什么建议吗?

    提前感谢

    1 回复  |  直到 7 年前
        1
  •  8
  •   Ayush Kesarwani    9 年前

    http://pandas.pydata.org/pandas-docs/stable/generated/pandas.pivot_table.html

    检查panda透视表功能的文档。没有名为cols的参数。旧版本的Pandas中曾经有“cols”。现在,“rows”被“index”和“cols”替换为“columns”。

    试试看:

    def my_pivot(rows, values, aggfunc, plt=True):
        dfp = df
        piv = pivot_table(dfp, values=values, index=rows, columns=cols,     aggfunc=aggfunc)
        print piv
        if plt: 
            plot(piv)
            show()
    
    my_pivot(values = df['Value'], rows=df['Partner'], cols=df['Year'], aggfunc=np.sum,plt=True)