如何在“\n”上拆分一行并将拆分后的所有内容添加到新行?

How to split a row on ‘\n’ and add everything after the split to a new row?

我有一个数据框:

id    type      value
1    inner      Upload new model. \nUpdate data. 
2    outer      Create new task.

我想通过拆分其中的文本并放置在新行中来拆分列值中包含 \n 的行。所以期望的结果是:

id    type      value
1    inner      Upload new model.
1    inner      Update data. 
2    outer      Create new task.

这个dataframe是例子,真实的要大很多,所以我需要写一个函数来应用于dataframe。我该怎么做?

您可以执行以下操作:

df['value'] = df['value'].replace(r'\n', '\n ', regex=True) 

\n 和下一个单词之间放置一个空格。然后

(df.set_index(['id', 'type'])
   .apply(lambda x: x.str.split('\n ').explode())
   .reset_index())

这给出了

   id   type               value
0   1  inner  Upload new model. 
1   1  inner       Update data. 
2   2  outer    Create new task.

也许这会有所帮助:

>>> df.assign(value=df['value'].str.split('\n')).explode('value')
'''
   id   type               value
0   1  inner  Upload new model. 
0   1  inner        Update data.
1   2  outer    Create new task.