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

时间:2018-02-16 18:51:32

标签: python pandas

我有一个数据框,例如:

func setData(){
    let conn = ApiConnection()
    conn.get_cities{ result in
        self.cityList = result!
    }
    print(self.cityList)
}

我需要:

    make     model     year range
0   Audi     A3        [1991, 1992, 1993]
1   Audi     A3        [1997, 1998]

我试过了

    make     model     year range
0   Audi     A3        [1991, 1992, 1993, 1997, 1998]

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

看起来很简单,但我无法理解!

1 个答案:

答案 0 :(得分:3)

连接列表是通过添加完成的,因此您只需将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