是否可以在熊猫数据框中格式化字符串?

时间:2018-11-07 15:24:08

标签: python pandas dataframe

我是熊猫的新用户,我想问问有可能这样做吗?

这是我的数据框示例。这两个属性的所有数据类型都是字符串。

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]

2 个答案:

答案 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})