首页 > 解决方案 > 熊猫用列切换行并保留数据

问题描述

如何用保留所有数据的数据中的列替换行?

测试数据:

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

标签: pythonpandas

解决方案


GroupBy.cumcount与 一起使用pivot

df = df.assign(g = df.groupby('x').cumcount()).pivot('g','x','y')

DataFrame.set_indexSeries.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

推荐阅读