在pandas groupby中合并两个列表并应用

Chr*_*ris 2 python pandas

我有一个数据框,例如:

    make     model     year range
0   Audi     A3        [1991, 1992, 1993]
1   Audi     A3        [1997, 1998]
Run Code Online (Sandbox Code Playgroud)

我需要:

    make     model     year range
0   Audi     A3        [1991, 1992, 1993, 1997, 1998]
Run Code Online (Sandbox Code Playgroud)

我试过了

df = df['year range].groupby([df.make, df.model]).apply(list).reset_index()
Run Code Online (Sandbox Code Playgroud)

但是,我最终将年份范围作为列表列表而不是单个列表。

看起来很简单,但我无法弄清楚!

fug*_*ede 5

连接列表是通过加法完成的,因此您可以简单地应用于sum相关列:

In [24]: df
Out[24]:
   make model                year
0  Audi    A3  [1991, 1992, 1993]
1  Audi    A3        [1997, 1998]

In [25]: df.groupby([df.make, df.model]).year.apply(sum)
Out[25]:
make  model
Audi  A3       [1991, 1992, 1993, 1997, 1998]
Name: year, dtype: object
Run Code Online (Sandbox Code Playgroud)