将Pandas数据帧列中的字符串列表转换为平均整数

时间:2018-03-27 10:51:39

标签: python pandas pandas-groupby

我有两个数据框,如下所示:

Id    Name    Price   
1    [ABC]        33900
1    [XYZ]        33900

当我通过id使用tolist进行分组时,我得到了一个列表:

Id   Name         Price
1    [[ABC],[XYZ]]   [33900,33900]

我想将此值转换为单值:

Id    Name     Price
1   [ABC,XYZ]   33900

我无法应用np.mean或任何其他操作,因为它显示为列表。 Dataframe还包括使用tolist成功分组的字符串,但整数也被添加为列表。

1 个答案:

答案 0 :(得分:1)

我认为GroupBy.apply需要flattening lists

df = (df.groupby(['Id','Price'])['Name']
        .apply(lambda x: [i for li in x for i in li])
        .reset_index())
print (df)
   Id  Price        Name
0   1  33900  [ABC, XYZ]