python - 如何在 python 上使用自定义拆分创建新列
问题描述
我有一个这样的数据框:
我想拆分注释列并创建 3 个由名称、国家和数字组成的新列。
注释的格式相同,只是可以有名字或全名。
我试图分裂并从右边开始。输入数字,然后国家和剩下的任何内容都应输入“名称”列。
新的 DataFrame 看起来像这样:
解决方案
我相信只需要最后两个空格来分割Series.str.rsplit
:n=2
df[['Name','Country','Digit']] = df['Note'].str.rsplit(n=2, expand=True)
也等于:
df[['Name','Country','Digit']] = df['Note'].str.rsplit(' ', n=2, expand=True)
证明:
import pandas as pd
df = pd.DataFrame({
'ID': [1,2,3,4],
'Note': [
'Sam John Brazil 2',
'Simion Canada 4',
'Sam John Brazil 1',
'Henry G. Hilson Spain 3']
})
df[['Name','Country','Digit']] = df['Note'].str.rsplit(n=2, expand=True)
print(df)
回报:
ID Note Name Country Digit
0 1 Sam John Brazil 2 Sam John Brazil 2
1 2 Simion Canada 4 Simion Canada 4
2 3 Sam John Brazil 1 Sam John Brazil 1
3 4 Henry G. Hilson Spain 3 Henry G. Hilson Spain 3
添加这个:(如果数字列是数字)
df['Digit'] = pd.to_numeric(df['Digit'], errors='coerce')
细节:
#print(df['Note'].str.rsplit(n=2, expand=True))
0 1 2
0 Sam John Brazil 2
1 Simion Canada 4
2 Sam John Brazil 1
3 Henry G. Hilson Spain 3
推荐阅读
- html - 如何在 HTML 页面中显示抓取的数据?
- c++ - 将特定字段从向量复制到另一个向量
- javascript - 访问在 html 中单独的 JavaScript 文件上声明的变量
- laravel - 为什么 axios 在 vuejs 中向 laravel Sanctum 请求 /sanctum/csrf-cookie 返回 204 No Content?
- javascript - Firebase HTTPS 可调用函数 context.auth 与自定义令牌身份验证一起使用时始终为空
- qt-creator - 使用 cmake 和 openmp 时,Mac OS 上的 Qtcreator 看不到 std
- sql - 在 ClickHouse 中使用 between 条件连接表
- css - 将 Wordpress megamenu 子菜单拆分为两列
- python - 如何在烧瓶中获取选择标签值
- node.js - 如何在 ibm watson 中使用节点 js 将语音转换为文本