Skip to main content
 首页 » 编程设计

python之将文本分成多列

2025年05月04日12unruledboy

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