我有以下数据框,我想将列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/