分隔符字符串拆分

Delimiter string splitting

我有一个数据集,其中一些值由“\n”分隔,一些值由“\n\n”分隔。我已经编写了一些分别适用于每种情况的代码,但我想知道是否有一种方法可以同时包含这两个定界符,以便将它们拆分为“\n”或“\n\n”。在当前设置中,它抛出错误 'Columns must be same length as key'.

代码:

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\nNever-married -- Local-gov|White'

您可以将正则表达式与 Pandas split:

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

如果至少有一个 \n.

则拆分