Pandas 交叉表平均值
Pandas crosstab averages
我正在尝试对 Pandas 数据框执行交叉表查询。它看起来像这样:
| Category | Score1 | Score2 | Score3 | Score4
| 1 | 2 | 3 | 5 | 12
| 1 | 3 | 4 | 2 | 5
| 2 | 1 | 6 | 8 | 6
我想创建一个交叉表查询,让我得到这样的东西,类别作为列,分数作为行:
Category| 1 | 2 | 3 |
Score 1 | | | |
Score 2 | | | |
Score 3 | | | |
空格中的值将是每个分数的每个类别的平均值。
现有数据文件是一个 csv,被读入 Pandas DataFrame。我查看了 pd.crosstab()
函数,但似乎无法将其绑定到数据框。它还有一个 aggfunc
的参数,我设置(使用 numpy)aggfunc=np.average
,但是我无法弄清楚 value
参数。
我是不是漏掉了什么,或者我应该为此使用 Pandas?
可能存在 pd.crosstab
的解决方案,但您也可以使用 groupby
、mean
和 T
(转置)执行您想要的操作,例如:
df_output = df.groupby('Category').mean().T
你得到:
Category 1 2
Score1 2.5 1.0
Score2 3.5 6.0
Score3 3.5 8.0
Score4 8.5 6.0
我正在尝试对 Pandas 数据框执行交叉表查询。它看起来像这样:
| Category | Score1 | Score2 | Score3 | Score4
| 1 | 2 | 3 | 5 | 12
| 1 | 3 | 4 | 2 | 5
| 2 | 1 | 6 | 8 | 6
我想创建一个交叉表查询,让我得到这样的东西,类别作为列,分数作为行:
Category| 1 | 2 | 3 |
Score 1 | | | |
Score 2 | | | |
Score 3 | | | |
空格中的值将是每个分数的每个类别的平均值。
现有数据文件是一个 csv,被读入 Pandas DataFrame。我查看了 pd.crosstab()
函数,但似乎无法将其绑定到数据框。它还有一个 aggfunc
的参数,我设置(使用 numpy)aggfunc=np.average
,但是我无法弄清楚 value
参数。
我是不是漏掉了什么,或者我应该为此使用 Pandas?
可能存在 pd.crosstab
的解决方案,但您也可以使用 groupby
、mean
和 T
(转置)执行您想要的操作,例如:
df_output = df.groupby('Category').mean().T
你得到:
Category 1 2
Score1 2.5 1.0
Score2 3.5 6.0
Score3 3.5 8.0
Score4 8.5 6.0