繁体   English   中英

根据唯一值将列拆分为多索引列

[英]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计数器,然后创建MultiIndexDataFrame.set_index ,重塑通过DataFrame.unstack和最后DataFrame.swaplevelDataFrame.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM