我是熊猫的新用户,我想问问有可能这样做吗?
这是我的数据框示例。这两个属性的所有数据类型都是字符串。
id class
A1 X1,41
A1 X1,42
A1 X1,43
A2 X1,41
A2 X1,45
我已经使用groupby合并了数据帧,结果是这样的。 df = df.groupby(['id']).sum()
id class
A1 X1,41X1,42X1,43
A2 X1,41X1,45
但是我希望结果是这样的(希望数据以列表的形式包含。)
id class
A1 [X1,41], [X1,42], [X1,43]
A2 [X1,41], [X1,45]
答案 0 :(得分:0)
我认为您正在寻找这个:
df.groupby('id').apply(lambda x: [[_x] for _x in x['class']])
这意味着对'id'
列进行分组,并对每个分组的对象应用给定的功能。在这种情况下,我提供了一个功能,用于创建该groupby对象中对象列表的列表。 _x
可以是任何东西,我只是对其命名,以反映它是临时的且是占位符。
答案 1 :(得分:0)
扩展@Ethan Koch的答案:
df.groupby('id').apply(lambda x: [[_x] for _x in x['class']])
返回系列,而不是数据框。转换回数据框:
df2=pd.DataFrame({'id':df.index, 'class':df.values})