从多个ID列创建新的Pandas数据帧行

2024-05-13 09:01:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Pandas数据帧,其中的行有属性,并且可能有多个id。例如:

Name    Weapon    Color   ID1    ID2    ID3
Leo     Sword     Blue    11     12
Raph    Sai       Red     13
Don     Bo        Purple  14     15     16
Mike    Nunchuck  Orange  17

我希望在保留行的属性的同时使每个id成为自己的行。例如:

^{pr2}$

我将如何使用selected specific columns从中创建行以及从哪些列保留数据?在


Tags: 数据nameidpandas属性bluecolorid3
2条回答

您可以使用:

df.melt(['Name','Weapon','Color'],value_name='ID').drop('variable',1).dropna()

^{pr2}$

您还可以使用stack(),它保持数据的原始顺序:

(df.set_index(['Name', 'Weapon', 'Color'])
   .stack().reset_index(level=-1, drop=True)
   .reset_index(name='ID'))

输出:

^{pr2}$

注意,这将忽略原始数据帧的索引。在

相关问题 更多 >