我有以下数据框,我想将列activities拆分为其他列,并用“,”将文本拆分为数据框

id  activities
 1  541,589,235,45
 2  213,213
 3  458,88,999,150,360


我正在使用df= df['activities'].str.split(',',5,expand=True)

所示数据框是我真实数据框的子集,在我的数据框中我不知道它们可以进行多少个活动(在这种情况下为5,但是在我的数据集中我不知道,因此我需要通过“ n”个活动来更改5) 。而且,如果我执行该代码,则会松开id列。

最佳答案

您走在正确的轨道上。分割后,您可以


重新分配id,或者
concat两件




i = df.activities.str.split(',', expand=True).add_prefix('activity_')
i

  activity_0 activity_1 activity_2 activity_3 activity_4
0        541        589        235         45       None
1        213        213       None       None       None
2        458         88        999        150        360


j = i.assign(id=df['id'])   # assign id back




j = pd.concat([df[['id']], i], 1)   # concat the two pieces




j

   id activity_0 activity_1 activity_2 activity_3 activity_4
0   1        541        589        235         45       None
1   2        213        213       None       None       None
2   3        458         88        999        150        360

关于python - 将文本分成多列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47837733/

10-11 07:43