[英]Split column into multindex columns based on unique values
如果我有一个数据框
test = pd.DataFrame({'IDs': ['one', 'one', 'one', 'two', 'two',
'two'],
'X': ['A', 'B', 'C', 'A', 'B', 'C'],
'Y': [1, 2, 3, 4, 5, 6]})
看起来像
IDs X Y
0 one A 1
1 one B 2
2 one C 3
3 two A 4
4 two B 5
5 two C 6
输出格式的最佳方式是什么,例如:
IDs one two
Pos X Y X Y
0 A 1 A 4
1 B 2 B 5
2 C 3 C 6
ID's
名称和长度可以更改(即实际ID's
数量)。
使用GroupBy.cumcount
计数器,然后创建MultiIndex
由DataFrame.set_index
,重塑通过DataFrame.unstack
和最后DataFrame.swaplevel
与DataFrame.sort_index
变革平次序:
df = (test.set_index([test.groupby('IDs').cumcount(), 'IDs'])
.unstack()
.rename_axis(('Pos','IDs'), axis=1)
.swaplevel(1, 0, axis=1)
.sort_index(axis=1))
print (df)
IDs one two
Pos X Y X Y
0 A 1 A 4
1 B 2 B 5
2 C 3 C 6
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.