我需要将多列转换为一列,并以一个已经存在的列作为键标识符。我更愿意使用pandas来做,但是普通的python也可以。

桌子看起来像这样

ID    Col1    Col2    Col3
01     'a'     'b'    'c'
02     'a'     'b'    'c'
03     'a'     'b'    'c'


所需的结果应如下所示:

ID    Col1
01     'a'
01     'b'
01     'c'
02     'a'
02     'b'
02     'c'
03     'a'
03     'b'
03     'c'


谢谢大家

最佳答案

您可以简单地堆叠数据框并重命名系列

df.set_index('ID').stack().reset_index(level=1,drop=True).rename('Col1').reset_index()


出:

    ID  Col1
0   1   'a'
1   1   'b'
2   1   'c'
3   2   'a'
4   2   'b'
5   2   'c'
6   3   'a'
7   3   'b'
8   3   'c'

关于python - 使用 Pandas 通过键标识符转置多列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53523735/

10-16 17:30