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

2024-05-23 17:44:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下数据帧:

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

看起来像这样:

enter image description here

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

  • 如果子字符串\n只出现一次,那么我将它连同前面的所有字符一起删除
  • 如果子字符串\n在一个特定的单元格中出现多次,那么我会删除所有包含的\n,以及它们之前和之后的内容(除了中间的内容)

代码的输出应该是:

enter image description here

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

^{pr2}$

但是这一行代码并不能让我得到所需的结果,因为输出是:

enter image description here


Tags: 数据字符串代码import内容dataframepandasdf
1条回答
网友
1楼 · 发布于 2024-05-23 17:44:42

^{}和一些正则表达式。在

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'\1', regex=True)
Out[3]:
        0    1    2    3
0   SOVAT  DVR  MEA  195
1  GALLO   DVR       195

相关问题 更多 >