如何使用 Python 从数据框中的单元格中部分删除内容

How to partially remove content from cell in a dataframe using Python

我有以下数据框:

import pandas as pd    
df = pd.DataFrame([
        ['\nSOVAT\n', 'DVR', 'MEA', '\n195\n'],
        ['PINCO\nGALLO ', 'DVR', 'MEA\n', '195'],
    ])

看起来像这样:

我的目标是分析数据帧的每个单元格,以便:

代码的输出应该是这样的:

注意:到目前为止,我只知道如何使用以下命令删除子字符串之前或之后的内容:

df = df.astype(str).stack().str.split('\n').str[-1].unstack() 
df = df.astype(str).stack().str.split('\n').str[0].unstack() 

然而,这行代码并没有让我得到想要的结果,因为输出是:

df.replace 和一些正则表达式。

In [1]: import pandas as pd
   ...: df = pd.DataFrame([
   ...:         ['\nSOVAT\n', 'DVR', 'MEA', '\n195\n'],
   ...:         ['PINCO\nGALLO ', 'DVR', 'MEA\n', '195'],
   ...:     ])
   ...:

In [2]: df.replace(r'.*\n(.*)\n?.*', r'', regex=True)
Out[3]:
        0    1    2    3
0   SOVAT  DVR  MEA  195
1  GALLO   DVR       195