python - 分隔符字符串拆分
问题描述
我有一个数据集,其中一些值由 '\n' 分隔,一些值由'\n\n' 分隔。我已经编写了一些分别适用于每种情况的代码,但我想知道是否有一种方法可以同时包含这两个分隔符,以便将它们拆分为“\n”还是“\n\n”。在当前设置中,它会引发错误“列必须与键长度相同”。
代码:
temp = result['personal_info'].str.replace(' -- ', '|').str.split('|', expand = True)
temp[[1,4]] = temp[1].str.split('\n', expand = True)
temp = temp.rename(columns={0: "occupation", 1: "country", 2: "employer_type", 3: "race", 4: "relationship_status"})
final_df = result
final_df = pd.concat([final_df, temp], axis=1, sort=False)
final_df = final_df.drop('personal_info', axis=1)
此代码适用于'\n',如果我将其更改为'\n\n',它适用于'\n\n'。
样本输入:
'Prof-specialty|United-States\n\nNever-married -- Local-gov|White'
'Prof-specialty|United-States\n未婚 -- Local-gov|White'
解决方案
您可以将正则表达式与 Pandas 拆分一起使用:
temp[[1,4]] = temp[1].str.split('\n+', expand = True)
如果至少有一个,就会分裂\n
。
推荐阅读
- javascript - 如何在 amchart 脚本中传递用户输入和自定义函数创建?
- python - 反转具有多个分配的链表 - 并非所有分配顺序都有效?
- c++ - 矩阵结构的 C++ 重载运算符
- php - 如何在 PHP 中删除和创建 Oracle 数据库表
- python - TextIOWrapper.tell() 在 0D/0A 上下文中使用 Python 3.6.9 的奇怪行为
- c# - 获取前 3 个最受欢迎的项目 c# linq EF
- php - 如何将外部服务器上的网站连接到本地主机上通过 Xaamp 运行的数据库?
- java - 为什么 Swagger Parser 的 getPaths 方法不返回所有路径?
- python - PySpark AnalysisException:无法解析列名
- r - 使用 3 个变量(日期、状态域和离散变量)制作 R/Shiny/ggplot2 线图