如何将字符串格式数值区间转换为浮点/整数类型的平均值?
解决方案
假设你的数据已经加载到 Pandas 的 DataFrame(命名为df)中,可通过以下步骤实现需求:
- 拆分
range列的区间值:用str.split方法将字符串按-分割为两列,转换为数值类型 - 计算区间平均值:对拆分后的两列取行均值,生成
mean列 - 保留原
range列:直接新增计算结果列即可,无需删除原列
完整代码示例
import pandas as pd # 构造示例数据(如果已有DataFrame可跳过此步) data = { 'datetime': ['2022-10-10', '2022-10-12'], 'range': ['50-54', '30-36'] } df = pd.DataFrame(data) # 拆分range列并计算均值 df[['low', 'high']] = df['range'].str.split('-', expand=True).astype(float) df['mean'] = df[['low', 'high']].mean(axis=1) # 可选:删除临时生成的low和high列 df = df.drop(['low', 'high'], axis=1) print(df)
代码说明
- 拆分并转类型:
str.split('-', expand=True)将每个区间字符串拆分为两列,astype(float)把文本转为数值类型,确保能执行数学运算 - 计算行均值:
mean(axis=1)对每行的上下限取值平均,得到区间中间值 - 清理临时列:若不需要拆分出的
low和high列,用drop方法删除即可
执行后输出结果:
datetime range mean 0 2022-10-10 50-54 52.0 1 2022-10-12 30-36 33.0
内容的提问来源于stack exchange,提问作者prof32
相关产品推荐
相关产品推荐

