首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将pandas df列拆分成多列

将pandas df列拆分成多列
EN

Stack Overflow用户
提问于 2020-11-11 06:53:02
回答 2查看 27关注 0票数 1

我有一个这样的df:

代码语言:javascript
复制
id  | authors
1   | smith, john; cameron, james;
2   | guan, brian;
3   | obs, noah; mumm, erik; lee, matt;

并希望将其拆分为:

代码语言:javascript
复制
id  | author1     | author 2      | author 3
1   | smith, john | cameron, james|
2   | guan, brian |               |
3   | obs, noah   | mumm, erik    | lee, matt

我知道pd.split()会根据分隔符一分为二,但这很棘手,因为有些栏目会有1个作者,有些栏目有2个作者,有些栏目会有更多作者。

EN

回答 2

Stack Overflow用户

发布于 2020-11-11 06:56:32

看起来您可以使用带有expand选项的str.split

代码语言:javascript
复制
df[['id']].join(df.authors.str.strip(';\s*').str.split('; ',expand=True))

输出:

代码语言:javascript
复制
   id            0              1          2
0   1   mith, john  cameron, jame       None
1   2  guan, brian           None       None
2   3    obs, noah     mumm, erik  lee, matt
票数 1
EN

Stack Overflow用户

发布于 2020-11-11 07:00:22

使用str.splitconcat函数:

代码语言:javascript
复制
df = pd.concat([df[['id']],df['authors'].str[0:-1].str.split('; ',expand=True)],axis=1)
df.columns = ['id','author1','author2','author3']
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64777969

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档