熊猫groupby分别制作两列列表

时间:2019-11-26 13:56:06

标签: python pandas

我目前有一个包含三列的DataFrame。为了方便起见,我们将它们称为fruitsportweather

我想要做的是按fruit列对DataFrame进行分组,并将sportweather的相应值放入列表中,以便我们拥有相应的{{1 }}和sport列出每个唯一的weather

例如:

fruit

将一个列值分组到一个列表中是相对简单的,但是我对如何使用两个列值有点困惑。我该怎么办?预先感谢。

2 个答案:

答案 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()
相关问题