首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >熊猫用另一栏的子串制作新的栏。

熊猫用另一栏的子串制作新的栏。
EN

Stack Overflow用户
提问于 2022-07-06 10:18:48
回答 1查看 87关注 0票数 1

我试着用另一个专栏的子字符串在熊猫中创建新的专栏。

代码语言:javascript
复制
import pandas as pd
import re

df = {'title':['Apartment 2 roomns, 40 m²', 'House 7 rooms, 183 m²', 'House 4 rooms, 93 m²', 'Apartment 12 rooms, 275 m²']} 

我正试图用regex来捕获组:

代码语言:javascript
复制
df['Name'] = df.title.str.extract(r'(^[a-zA-Z]+)', expand=True) 

这个我得到了一个很好的结果。但我需要一个有房间数量的栏目(没有“房间”这个词)和另一个没有“平方米”大小的栏目。我试过:

代码语言:javascript
复制
df['Rooms'] = df.title.str.replace(r'(^[0-9]+)\s(rooms)', r'\1') #to capture only the first group, which is the number

df['Size'] = df.title.str.replace(r'(^[0-9]+)\s(m²)', r'\1') #to capture only the first group, which is the number

我的产出:

代码语言:javascript
复制
   Name      Rooms                         Size
0  Apartment Apartment 2 roomns, 40 m²     Apartment 2 roomns, 40 m²
1  House     House 7 rooms, 183 m²         House 7 rooms, 183 m²
2  House     House 4 rooms, 93 m²          House 4 rooms, 93 m²
3  Apartment Apartment 12 rooms, 275 m²    Apartment 12 rooms, 275 m²

良好的产出:

代码语言:javascript
复制
   Name      Rooms Size
0  Apartment 2     40
1  House     7     183
2  House     4     93
3  Apartment 12    275
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-06 10:22:10

您可以使用

代码语言:javascript
复制
df["Rooms"] = df["title"].str.extract(r'(\d+)\s*room', expand=False)
df['Size'] = df["title"].str.extract(r'(\d+(?:\.\d+)?)\s*m²', expand=False)

输出:

代码语言:javascript
复制
>>> df
                        title Rooms Size
0   Apartment 2 roomns, 40 m²     2   40
1       House 7 rooms, 183 m²     7  183
2        House 4 rooms, 93 m²     4   93
3  Apartment 12 rooms, 275 m²    12  275

(\d+)\s*room正则表达式匹配并捕获到Group 1中的一个或多个数字,然后只匹配零或多个空白空间(\s*),然后匹配一个room字符串。

(\d+(?:\.\d+)?)\s*m²正则表达式匹配并捕获一个或多个数字,以及一个.和一个或多个数字的可选字符串,然后匹配零或多个空白空间,然后匹配一个字符串。

参见regex #1演示regex #2演示

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

https://stackoverflow.com/questions/72881782

复制
相关文章

相似问题

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