python-3.x - 如何将列的值转换为新行
问题描述
我有一个巨大的熊猫数据火焰,例如
A B C D E
0: a0 b0 c0 d0 e0
1: a1 b1 c1 d1 e1
2: a2 b2 c2 d2 e2
我想把它改成:
A B C X Y
0: a0 b0 c0 D d0
0: a0 b0 c0 E e0
1: a1 b1 c1 D d1
1: a1 b1 c1 E e2
2: a2 b2 c2 D d1
2: a2 b2 c2 E e2
我怎样才能做到这一点?
到目前为止,我正在创建一个新的 dataFrame 并使用 for 循环填充它。
解决方案
您可以通过设置索引和堆栈来完成:
df = (df.set_index(list('ABC'))
.stack()
.reset_index()
.rename(columns={'level_3': 'X', 0: 'Y'})
)
A B C X Y
0 a0 b0 c0 D d0
1 a0 b0 c0 E e0
2 a1 b1 c1 D d1
3 a1 b1 c1 E e1
4 a2 b2 c2 D d2
5 a2 b2 c2 E e2
推荐阅读
- arrays - Firebase 实时数组填充 div
- postgresql - How to initialise PostgreSQL instance by creating database and tables
- python - python mqtt连接上的SSL证书验证失败
- javascript - 如何在 Amazon Athena 上查询(搜索)具有 JSON 值的 sql?
- asp.net - 我无法将 id 发送到注销页面
- javascript - 如何使用服务测试 React 组件?
- c# - 为什么 String.Split() 不允许单个字符串作为参数
- reactjs - 无法在reactjs中打印到文件
- python-3.x - python中的索引器库安装错误
- android - 自定义通知显示类似图像