如何在 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
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