python - 如何在熊猫数据帧中使用 re.sub
问题描述
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:decode to str: need a bytes-like object, float found。它有什么问题?
谢谢你给我答复。
解决方案
如果你只是想用 替换某个字符串列中np.nan
的值,当字符串的值全是空格时,你可以执行以下操作。如果它是否全是空格并不重要,您可能需要编辑正则表达式:
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
推荐阅读
- postgresql - Postgres:如何将 JSONB 值转换为数字
- sql - SQL 按唯一值过滤文本字符串
- oracle - 为什么命令 conn / as sysdba 在 sqlplus 中抛出错误?
- javascript - 调度拖尾事件
- sql - 无法解决错误消息 Msg 241, Level 16, State 1, Line 1 从字符串转换日期和/或时间时转换失败
- video-streaming - RTMP 转 WebRTC?是否有意义?
- kotlin - Kotlin 用单引号连接文件内容词
- javascript - Zapier 代码模式:集成 Monday.com
- python - 使用 slackclient 2.x 上传文件
- php - 如何在 oci_bind_by_name 函数中传递 sysdate 来更新记录?