python - 熊猫用列切换行并保留数据
问题描述
如何用保留所有数据的数据中的列替换行?
测试数据:
import pandas as pd
data_dic = {
"x": ['a','b','a','a','b'],
"y": [1,2,3,4,5]
}
df = pd.DataFrame(data_dic)
x y
0 a 1
1 b 2
2 a 3
3 b 4
4 b 5
预期输出:
a b
0 1 2
1 3 4
2 NaN 5
解决方案
GroupBy.cumcount
与 一起使用pivot
:
df = df.assign(g = df.groupby('x').cumcount()).pivot('g','x','y')
或DataFrame.set_index
与Series.unstack
:
df = df.set_index([df.groupby('x').cumcount(),'x'])['y'].unstack()
print (df)
x a b
g
0 1.0 2.0
1 3.0 4.0
2 NaN 5.0
推荐阅读
- python - tf.keras 中的 A2C 算法:actor 损失函数
- python - 从该列的值中检索 2d numpy 数组中的列索引
- aws-lambda - 如何在 AWSXRay 中创建子分段?
- javascript - 为什么安装 npm 后表单提交不起作用?
- acumatica - Acumatica 如何使自定义分支字段不是强制性的或能够从查找中选择分支
- javascript - 在同一页面上使用两个 Bootstrap 轮播 - 一个在一张幻灯片上,一个在一个幻灯片上包含多个项目
- uml - 在 SysML 中建模阈值 (T) 和目标 (O) 要求的最佳实践?
- java - SpringBoot Bean验证@NotEmpy不工作
- python - 即使我删除它,图像变量也会被覆盖
- python - 使用pandas python使用给定属性的DataFrame索引时出错