Python - 按列的唯一值分组并将 df 转置为列表

Python - Group by unique value of a column and transpose df to lists

我正在尝试将数据框转换为列表,按列中的唯一值分组并转置。我不确定是否应该先删除重复值。看起来我需要使用 for 循环或 pandas 来完成它,但我还没有弄清楚如何做。如果有人可以提供帮助,那就太好了。这是我想做的事情:

cvs 中的数据框:

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

期望的输出:

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

谢谢!

你可以获取列表列表

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


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

访问个人列表

print(l[0])

['Apple', 'Mary', 'Ben', 'Katy']

尝试使用 .loc。例如:

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