【问题标题】:How to use re.sub in pandas datafram如何在熊猫数据框中使用 re.sub
【发布时间】:2021-04-16 17:16:46
【问题描述】:
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))
我检查了数据框中的值是一个字符串。但它总是表明
TypeError:解码为 str:需要一个类似字节的对象,找到浮点数。它有什么问题?
谢谢你给我答复。
【问题讨论】:
标签:
python
dataframe
python-re
【解决方案1】:
如果你只是想用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