我有两个数据框,如下所示:
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成功分组的字符串,但整数也被添加为列表。
答案 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]