如何在Dataframe中检测任意字符串并将其统一替换为0
通用解决方案
分两种常用处理场景,你可以根据自身需求选择:
场景1:仅替换无法转为合法数值的字符串,保留可转成数字的字符串(适配你给出的示例数据需求)
Python Pandas 环境
核心逻辑是尝试将所有元素转为数值,转换失败的内容自动标记为空缺值后统一替换为0:
import pandas as pd df = df.apply(pd.to_numeric, errors='coerce').fillna(0)
R 环境
library(dplyr) df <- df %>% mutate(across(everything(), ~ as.numeric(as.character(.x)))) %>% replace(is.na(.), 0)
场景2:不管字符串内容是否为合法数字,直接将所有字符串类型的内容替换为0
Python Pandas 环境
df = df.applymap(lambda x: 0 if isinstance(x, str) else x)
R 环境
library(dplyr) df <- df %>% mutate(across(everything(), ~ ifelse(is.character(.x), 0, .x)))
内容的提问来源于stack exchange,提问作者AW27
相关产品推荐
相关产品推荐

