首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dataframe将文本拆分为新列

Dataframe将文本拆分为新列
EN

Stack Overflow用户
提问于 2020-04-03 14:18:48
回答 2查看 39关注 0票数 2

我有一个包含以下列MENU_HINT的数据框架,我希望通过选择第三个单词来创建一个新的列:

代码语言:javascript
复制
MENU_HINT
AUS / Cant (AUS) 
AUS / Darw (AUS)
AUS / YarV (AUS)
AUS / Goul (AUS)

我的代码如下:

代码语言:javascript
复制
splittext = str(dfresults['MENU_HINT'])
dfresults['City'] = splittext.split()[3]

这给了我:

代码语言:javascript
复制
MENU_HINT                City
AUS / Cant (AUS)         Cant
AUS / Darw (AUS)         Cant
AUS / YarV (AUS)         Cant
AUS / Goul (AUS)         Cant

我正在寻找铁路超高,达鲁,YarV,古尔,但它是固定在最高值(铁路超高)。

我知道我已经很接近了,但是似乎找不到问题所在,所以任何帮助都是非常好的!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-03 14:21:35

对切片使用Series.str.split

代码语言:javascript
复制
#fourth value
dfresults['City'] = dfresults['MENU_HINT'].str.split().str[3]

#third value
dfresults['City'] = dfresults['MENU_HINT'].str.split().str[2]
票数 1
EN

Stack Overflow用户

发布于 2020-04-03 14:33:02

另一个解决方案是将pandas.Series.str.extract与正则表达式一起使用:

代码语言:javascript
复制
df['City'] = df['MENU_HINT'].str.extract(r'/\s(\w+)')
print(df)

           MENU_HINT  City
0  AUS / Cant (AUS)   Cant
1   AUS / Darw (AUS)  Darw
2   AUS / YarV (AUS)  YarV
3   AUS / Goul (AUS)  Goul

这假设要匹配的文本后面跟着'/',并且可以在任何位置。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61006082

复制
相关文章

相似问题

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