pandas - 在 Pandas 中解析字符串
问题描述
我正在处理一个数据框,其中的一列具有这样的值 -
场地 |
---|
marketable_email_status_m10 |
email_availability_status_m11 |
结束_ar_60_to_89_dpd_m11 |
email_availability_status_m1 |
我希望我的最终输出使字符串分成两列,如下所示:
场地 | 文本1 | 文本2 |
---|---|---|
marketable_email_status_m10 | marketable_email_status | m10 |
email_availability_status_m11 | email_availability_status | m11 |
结束_ar_60_to_89_dpd_m11 | 结束_ar_60_to_89_dpd | m11 |
email_availability_status_m1 | email_availability_status | 米1 |
我已经能够产生第 3 列,但不确定如何处理第 2 列。
解决方案
有extract
功能请尝试以下。
df[["text1","text2"]] = df['field'].str.extract(r'^(.*)_(.*)$')
解释:
df.str.extract
在 DataFrame 的field
列上应用函数。- 然后使用 2 个捕获组在 DataFrame 中创建 2 个新列,分别命名为
text1
和text2
. - 第一个捕获组拥有一切
_
,第二个拥有其余的价值(根据 OP 的要求)。 - 将创建的捕获组的值保存到名为
text1
和的字段text2
中。
输出如下:
field text1 text2
0 marketable_email_status_m10 marketable_email_status m10
1 email_availability_status_m11 email_availability_status m11
2 ending_ar_60_to_89_dpd_m11 ending_ar_60_to_89_dpd m11
3 email_availability_status_m1 email_availability_status m1
推荐阅读
- powershell - Where-Object 在所有先决条件上从左到右匹配?
- reactjs - 如何在反应 js 中捕获 net::ERR_CONNECTION_TIMED_OUT?
- javascript - iconv 解码流中遇到的特殊字符
- css - 如何使用css变换构建45度倒梯形?
- jira - 附在 Jira rest API 上的 webm 格式不在问题附件中预览
- reactjs - 拖动 tomkp/react-split-pane 的调整大小后无法设置 defaultSize
- node.js - CERT_HAS_EXPIRED - 在从节点 js 到 php 的 post 请求中
- html - 表格主体元素与标题元素重叠
- javascript - 在构建基于 JavaScript 的 Web 浏览器时减少 CPU 使用率的方法
- reactjs - Symfony,React:生产服务器上的 api/var/log/prod.log 为空