python - Pandas pivot_table 使用列名
问题描述
我有一个看起来像这样的熊猫数据框:
ID, tag, score1
A1, T1, 10
A1, T1, 0
A1, T2, 20
A1, T2, 0
A2, T1, 10
A2, T1, 10
A2, T2, 20
A2, T2, 20
使用 pandas pivot_table 函数,我可以旋转表格以获得以下数据框:
df.pivot_table(index= 'tag' , columns='ID', values= 'score1' , aggfunc='mean')
A1, A2
T1 5, 10
T2 10, 20
现在假设我的输入数据框有多个score
列:
ID, tag, score1, score2, score3
A1, T1, 10, 100, 1000
A1, T1, 0, 0, 0
A1, T2, 20, 200, 2000
A1, T2, 0, 0, 0
A2, T1, 10, 100, 1000
A2, T1, 10, 100, 1000
A2, T2, 20, 200, 2000
A2, T2, 20, 200, 2000
我正在寻找一种方法来pivot
获取数据以获得以下结果:
df.pivot_table(index= ??? , columns='ID', values= ??? , aggfunc='mean').round(-3)
A1, A2
score1 7.5, 15
score2 75, 150
score3 750, 1500
这次我不想使用列的值进行透视,而是直接使用多个列名。
有没有办法做到这一点,pivot_table()
还是我走错了方向?
解决方案
是的,你可以pivot_table
这样使用:
df1.pivot_table(columns='ID', aggfunc='mean')
输出:
ID A1 A2
score1 7.5 15.0
score2 75.0 150.0
score3 750.0 1500.0
推荐阅读
- r - 您如何按一列对 x 轴进行排序并按另一列标记 x 轴?
- rpa - 无法使用 G1ANT 机器人登录远程桌面连接上的桌面应用程序
- angular - 反应式嵌套表单
- c# - 如何通过 IEnumerable 访问 foreach 迭代中的下一个和上一个项目?
- php - How to show data by ID in TableView from JSON
- angular-material - 我有多少种颜色
- c - 静态大小的字符串声明
- docker - 如何使用 systemd 启动和停止 docker 容器
- php - 如何使用 PHP 在表单中提交复选框数据切换值
- python - 无法在 docker 容器中使用 gunicorn 连接到烧瓶应用程序