我目前有一个包含三列的DataFrame。为了方便起见,我们将它们称为fruit
,sport
和weather
。
我想要做的是按fruit
列对DataFrame进行分组,并将sport
和weather
的相应值放入列表中,以便我们拥有相应的{{1 }}和sport
列出每个唯一的weather
。
例如:
fruit
将一个列值分组到一个列表中是相对简单的,但是我对如何使用两个列值有点困惑。我该怎么办?预先感谢。
答案 0 :(得分:7)
您可以groupby
并与list
构造函数聚合:
df.groupby('fruit', as_index=False).agg(list)
fruit sport weather
0 apple [baseball, basketball] [sunny, windy]
1 banana [swimming, hockey] [cloudy, windy]
2 orange [football] [sunny]
答案 1 :(得分:2)
您可以使用方法pivot_table
:
df.pivot_table(index='fruit', aggfunc=list).reset_index()