熊猫枢轴表安排

时间:2016-03-01 18:33:01

标签: python pandas pivot-table

我想创建一个数据透视表并使用多个aggfuncs;具体为np.meannp.stdpandas.pivot_tables的正常行为是将aggfuncs分层放置在最顶层。如果你在value中只有一列,这没关系,但我有7.这使得阅读表格有点单调乏味。我希望能够将值放在层次结构的顶部,以便在每个value内有一个mean和std列。有没有办法可以做到这一点,还是我解决了?

感谢您的帮助!

编辑:这是一小段数据摘录。

Col1   Col2    Col3    Col4     Col5     Col6   Col7    Col8   Col9    
A       A        0      4247     5684     2068   393    237    16286
A       A        0        0      2366     4159   3155   696    341     
A       B        18198    0        1114   1871   5392   1954   755  
A       B        17829    0      2695     2366   3768   1289   445
A       C        18352    0      3545     7508   5099   2071   1239 

我希望输出看起来像这样:

                  Col 3        Col 4        Col 5        Col 6        Col 7  ...
Col 1  Col 2   Mean   Std   Mean    Std   Mean   Std   Mean   Std   Mean   Std  ...
A      A       0      0     2123.5 2173.5 ...
       B       ...
       C       ...

我现在不打算完成所有的计算,但我认为这可以解决这个问题。

2 个答案:

答案 0 :(得分:1)

我不得不改变你的行标题来自" Col 1" >> " Col1中"

   compile 'com.google.android.gms:play-services-ads:8.4.0' and

答案 1 :(得分:0)

我认为这可以使用.describe()(包含均值和标准统计数据)和.pivot的组合来解决。假设您的DF看起来像这样:

print(df)

        City          Country                   lon
0       Dubai         United Arab Emirates   55.307484
254     Buenos Aires  Argentina             -58.381592
1002    Rosario       Argentina             -60.666500
1162    Punta Arenas  Chile                 -70.916473
1178    San Miguel    Argentina             -65.217590

并且您希望获得关于' lon'的统计信息。每个国家/地区的列。使用.describe获取统计信息:

stats = df.groupby('Country').describe()
#reset index so that you can specify the columns later
stats.reset_index(level = [0,1], inplace = True)
stats.head()
    Country level_1 lon
0   Albania count   1.0000
1   Albania mean    19.8318
2   Albania std     NaN
3   Albania min     19.8318
4   Albania 25%     19.8318

然后根据您的统计数据表执行数据透视表。由于结果将是多索引的,因此您需要指定元组列来访问mean和std列:

stats.pivot('Country', 'level_1')[[('lon', 'mean'), ('lon', 'std')]]

结果将类似于:

    lon
level_1 mean    std
Country     
Albania 19.831800   NaN
Algeria 2.744837    3.323134
Angola  13.234444   NaN
Argentina   -63.806806  4.101027

如果这有帮助,请告诉我 - 祝你好运。