检测DataFrame中的指数值并替换为10000的实现方法
解决DataFrame中指数值替换为10000的问题
方案思路
识别DataFrame value列中的科学计数法(指数形式)数值,将其统一替换为10000,非指数值保持原样。
具体实现代码
先构建示例DataFrame:
import pandas as pd # 还原你的原始DataFrame df = pd.DataFrame({'value': [5, 5.67e54, 10, 1.04e26]})
方法一:基于字符串检测(通用型)
通过判断数值的字符串形式是否包含指数标识(e/E)来识别指数值:
def replace_exp(val): # 转小写后检查是否含指数标识 if 'e' in str(val).lower(): return 10000 return val # 把替换逻辑应用到目标列 df['value'] = df['value'].apply(replace_exp)
方法二:基于数值大小判断(适用于指数值远大于10000的场景)
如果确定所有指数值都远大于10000,可直接通过数值阈值判断:
df['value'] = df['value'].apply(lambda x: 10000 if x > 1e4 else x)
处理后结果
执行代码后,DataFrame输出如下:
value 0 5 1 10000 2 10 3 10000
内容的提问来源于stack exchange,提问作者nerd
相关产品推荐
相关产品推荐

