pandas 如何删除行中值前的空格和特殊字符

t40tm48m  于 2023-06-20  发布在  其他
关注(0)|答案(3)|浏览(97)

我在1列中有一些数值,用逗号分隔,然而,问题是我有时也有2个逗号和空格在一行中。它们创建了3列,而我只需要2列。虚拟数据如下:

Col A
12.55, 1345
 ,13, 1346
, 14, 1347
15.2, 1348
,15.8, 1349

我想要的就是这样

Col A          Col B    col C
    12.55, 1345       12.55    1345
     ,13, 1346          13     1346
    , 14, 1347          14     1347   
    15.2, 1348         15.2    1348
    ,15.8, 1349        15.8    1349

我真的很感谢你的建议和解决办法。

58wvjzkj

58wvjzkj1#

试试这个:

df[['Col B', 'Col C']] = df['Col A'].apply(lambda x: pd.Series(filter(lambda x: x != '',str(x).split(','))))
azpvetkf

azpvetkf2#

首先删除逗号:

df['Col A'] = df['Col A'].str.replace(',', '')

然后拆分:

df[['Col B', 'Col C']] = df['Col A'].str.split(' ', 1, expand = True)
sauutmhj

sauutmhj3#

我将利用正则表达式完成以下任务

import pandas as pd
df = pd.DataFrame({'A':['12.55, 1345',' ,13, 1346',', 14, 1347','15.2, 1348',',15.8, 1349']})
df[['B','C']] = df.A.str.extract(r'([^,]*),\s(\d+)$')
print(df)

给出输出

A      B     C
0  12.55, 1345  12.55  1345
1    ,13, 1346     13  1346
2   , 14, 1347     14  1347
3   15.2, 1348   15.2  1348
4  ,15.8, 1349   15.8  1349
  • (在pandas 2.0.1中测试)*

相关问题