You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用单次re.sub处理pandas列中的0.0(nan)与0(nan)格式?

统一转换Pandas列中两种格式的数值为0

我的Pandas数据列里存在0.0(nan)和0(nan)两种格式的数据,希望将它们统一转换为0。

原实现代码

import pandas as pd
import re

df = pd.DataFrame.from_dict({'col1': ['0.0(nan)','0(nan)']})
df['col2'] = df['col1'].astype(str).apply(lambda x: re.sub('(.*?)\\(nan\\)', '\\\\1', re.sub('(.*?)\\.0*\\(nan\\)', '\\\\1', x)))
print(df)

执行输出

col1 col2
0  0.0(nan)    0
1    0(nan)    0

由于不清楚如何用正则同时处理括号前的.0或无小数的格式,我嵌套使用了两次re.sub。想请教:如何用单次re.sub实现该需求?或者有没有其他可行方法?


编辑: 根据@mozway的建议,修改后的代码如下:

df['col2'] = df['col1'].astype(str).apply(lambda x: re.sub('(.*?)(?:\\.0)?\\(nan\\)', '\\\\1', x))

内容的提问来源于stack exchange,提问作者warem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 17:24:50