如何将DataFrame多列带%的字符串转为float64并规避日期列报错
处理DataFrame多列百分数字符串转float64
核心思路
只针对需要转换的带百分号的列操作,避开日期列等无关列,避免报错。
方法一:循环处理指定列
先明确要转换的列名列表,再逐个处理:
# 替换成你实际需要处理的列名 target_cols = ['TGT', '列名1', '列名2'] for col in target_cols: # 移除百分号→转float→除以100转为小数 web_data_bounce[col] = web_data_bounce[col].str.replace('%', '', regex=True).astype('float') / 100
方法二:批量处理指定列(更简洁)
用apply对目标列批量操作:
target_cols = ['TGT', '列名1', '列名2'] web_data_bounce[target_cols] = web_data_bounce[target_cols].apply( lambda x: x.str.replace('%', '', regex=True).astype('float') / 100 )
容错优化(处理异常值)
如果列中存在无法转换的内容(比如空值、非数字字符串),用pd.to_numeric做容错处理,转换失败的会转为NaN:
for col in target_cols: web_data_bounce[col] = pd.to_numeric( web_data_bounce[col].str.replace('%', '', regex=True), errors='coerce' ) / 100
内容的提问来源于stack exchange,提问作者gs2124
相关产品推荐
相关产品推荐

