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)
我正在尝试将数据框转换为列表,按列中的唯一值分组并转置。我不确定是否应该先删除重复值。看起来我需要使用 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)