python - 如何将 Pandas DataFrame 中的数据与多索引组合到列表中
问题描述
我有一个带有多索引的 Pandas 数据框,它是枢轴的结果(如在枢轴熊猫函数描述中)
df = pd.DataFrame({'foo': ['one', 'one', 'one', 'two', 'two',
'two'],
'bar': ['A', 'B', 'C', 'A', 'B', 'C'],
'baz': [1, 2, 3, 4, 5, 6],
'zoo': ['x', 'y', 'z', 'q', 'w', 't']})
df
foo bar baz zoo
0 one A 1 x
1 one B 2 y
2 one C 3 z
3 two A 4 q
4 two B 5 w
5 two C 6 t
dp = df.pivot(index='foo', columns='bar', values=['baz', 'zoo'])
dp
baz zoo
bar A B C A B C
foo
one 1 2 3 x y z
two 4 5 6 q w t
我想让它看起来像这样:
bar A B C
foo
one [1,x] [2,y] [3,z]
two [4,q] [5,w] [6,t]
0 级索引中的数据在哪里组合在一个列表中......有什么想法可以做到这一点吗?试过 agg(list) 但这没有用......
解决方案
一种选择是先组合列baz
,zoo
然后再旋转表格:
df['combined'] = list(zip(df.baz, df.zoo))
df.pivot('foo', 'bar', 'combined')
#bar A B C
#foo
#one (1, x) (2, y) (3, z)
#two (4, q) (5, w) (6, t)
推荐阅读
- python - 按日期对元组列表进行排序,格式为 dd 月份名称 yyyy
- php - 将日期时间转换为碳实例
- ios - 当应用程序打开时应用程序不在内存中时如何调用 openURLContexts?
- excel - VBA:如何等到excel下载完成?
- python - 打印列表中的元素块
- html - 如何修复此 WCAG 错误“此表单控件具有空白标签或标题。”
- oracle - Oracle sql developer 触发器错误 ORA-04088: 执行触发器 'SYSTEM.LRES_PROTOKOLL' 期间出错
- c# - 从特定节点构建树
- ffmpeg - 使用 puppeteer 对页面进行截图,并使用 ffmpeg 从截图图像中生成视频。如何制作流畅的视频?
- postgresql - 如何使用卷从 docker 中的转储或 sql 文件中恢复数据库?