首页 > 解决方案 > 如何使用 pandas.Panel 获取数据框列表的平均值?

问题描述

我有 200 个用户,我正在为每种方法(行)计算度量值(列)并将其保存到数据框中。我关注了这篇文章,该文章pandas.Panel用于对每种方法的所有测量值对所有用户取平均值

for loop为用户计算测量值之前,这是针对两个用户的,例如 (01)

dfs = {}
for s in range(0, 2): # do the following for user0 and user1
    .
    # some commands for calculation of measurements
    .
    .
    .
    #end of the loop
    dfs[s] = pd.concat([ov_df, sd_df], axis=1)  # dataframe for user s
panel = pd.Panel(dfs)
*** TypeError: object() takes no parameters

如何对所有用户取15 measures平均值11 methods

dfs
{0:              m1        s2       ...      ee         vd
RF              0.536819  0.698611  ...  57.144087 -55.781946
OL              0.480758  0.649341  ...  61.991170 -57.210469
LA              0.427991  0.599431  ...  67.091363 -57.026384
AP              0.466703  0.636397  ...  63.612812 -57.285542
AP2             0.467951  0.637557  ...  63.677943 -59.602584
MA              0.428375  0.599807  ...  67.073286 -56.977762
RC              0.536892  0.698672  ...  57.135469 -55.766803
DP              0.536819  0.698611  ...  57.144087 -55.781946
DC              0.537510  0.699195  ...  57.014234 -55.574017
KU              0.537032  0.698791  ...  57.111874 -55.745237
KE              0.493517  0.660879  ...  60.704082 -57.366922

[11 rows x 15 columns], 1:                  m1        s2       ...      ee         vd
RF              0.369103  0.539190  ...  61.541261 -48.183651
OL              0.334069  0.500827  ...  66.807720 -43.531795
LA              0.300838  0.462530  ...  70.741817 -39.702935
AP              0.322879  0.488146  ...  68.371827 -38.054113
AP2             0.322453  0.487659  ...  68.212097 -47.518693
MA              0.301198  0.462955  ...  70.716283 -39.436550
RC              0.369095  0.539181  ...  61.546610 -48.155079
DP              0.369103  0.539190  ...  61.541261 -48.183651
DC              0.369500  0.539613  ...  61.484330 -48.376968
KU              0.369116  0.539203  ...  61.539789 -48.176711
KE              0.341218  0.508818  ...  65.061794 -49.218448

标签: pythonpandasdataframepandas-groupby

解决方案


我在这篇文章中找到了答案 仅一行命令

df = pd.concat(dfs).mean(level=0)

推荐阅读