Python按列的唯一值分组并将df转置到列表中

2024-03-29 11:24:33 发布

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

我试图将一个数据帧转换成列表,按列中的唯一值分组并进行转置。我不确定是否应该先删除重复值。看起来我需要使用for loop或pandas来完成,但我还没想好怎么做。如果有人能帮忙就好了。我想做的是:

cvs中的数据帧:

Col1    Col2
Apple   Mary  
Apple   Ben
Apple   Katy
Kiwi    Joy
Kiwi    Sam
Banana  Ben
Banana  Tom
Banana  John

期望输出:

^{pr2}$

谢谢你!在


Tags: 数据loopapplepandas列表forcol2col1
2条回答

你可以得到一份名单

l = [[label] + grp['Col2'].unique().tolist() for label, grp in df.groupby('Col1')]


[['Apple', 'Mary', 'Ben', 'Katy'],
 ['Banana', 'Ben', 'Tom', 'John'],
 ['Kiwi', 'Joy', 'Sam']]

访问个人列表

^{pr2}$

尝试使用.loc。例如:

for fruits in d_f.Col1.unique():
    names = d_f.loc[d_f['Col1']==fruits,"Col2"].tolist()
    print([fruits]+names)

相关问题 更多 >