如何用Pandas将Ep、Sbolo列中的±误差值移至新列
解决方案
可以通过Pandas的字符串处理方法自动拆分Ep和Sbolo列中的数值与误差,无需手动操作。以下是具体实现代码:
核心代码
import pandas as pd # 假设你的数据存储在名为df的DataFrame中 # 拆分Ep列,生成均值和误差列 df[['Ep_mean', 'Ep_err']] = df['Ep'].str.extract(r'([\d.]+)\s*±\s*([\d.]+)', expand=True) # 拆分Sbolo列,生成均值和误差列 df[['Sbolo_mean', 'Sbolo_err']] = df['Sbolo'].str.extract(r'([\d.]+)\s*±\s*([\d.]+)', expand=True) # 可选:将拆分后的列转换为数值类型(方便后续计算) df[['Ep_mean', 'Ep_err', 'Sbolo_mean', 'Sbolo_err']] = df[['Ep_mean', 'Ep_err', 'Sbolo_mean', 'Sbolo_err']].astype(float)
代码说明
str.extract(r'([\d.]+)\s*±\s*([\d.]+)':通过正则表达式捕获两组内容,([\d.]+)匹配数值部分(包含数字和小数点),\s*±\s*匹配带可选空格的±符号,兼容"12.34±0.56"或"12.34 ± 0.56"这类常见格式。expand=True:让提取结果以DataFrame形式返回,直接赋值给新列即可完成拆分。- 最后一行的
astype(float)将拆分出的字符串类型数值转为浮点型,便于后续的数据分析或计算。
内容的提问来源于stack exchange,提问作者Alucard
相关产品推荐
相关产品推荐

