首页 > 解决方案 > 分隔符字符串拆分

问题描述

我有一个数据集,其中一些值由 '\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'

标签: pythonnumpydataframedelimiter

解决方案


您可以将正则表达式与 Pandas 拆分一起使用:

temp[[1,4]] = temp[1].str.split('\n+', expand = True)

如果至少有一个,就会分裂\n


推荐阅读