如何在 pandas 数据框中使用 re.sub

How to use re.sub in pandas datafram

def not_value(x):
    if type(x) == str:
        re.sub(r'(\s+)', np.nan, x)
    else:
        pass

df_copy=df.copy()
df_copy.astype(str).applymap(lambda x: not_value(x))

我检查过数据框中的值是一个字符串。但它总是表明 类型错误:解码为 str:需要一个类似字节的对象,找到浮点数。它有什么问题?

谢谢你给我的答复。

如果只是想将某个字符串列中的值替换为np.nan,当字符串的值全为空格时,可以进行如下操作。如果 all 空格无关紧要,您可能想要编辑正则表达式:

import pandas as pd
import re
import numpy as np

d = {'col1': [1, 2], 'col2': [3, 4], 'col3': ['s ', '  ']}

df = pd.DataFrame(data=d)

spaces = df['col3'].str.contains('^\s+$')
df.loc[spaces, 'col3'] = np.nan
df

结果:

   col1  col2 col3
0     1     3   s 
1     2     4  NaN