我有以下数据框,我想将 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 但在我的数据集中我不知道,所以我需要将 5 更改为“n “事件)。而且,如果我执行该代码,我会丢失 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
