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

如何用Python将CSV中含NaN的字符串温度范围列转为浮点数

处理CSV中温度范围列的平均值转换方案

嘿,作为Python新手,用pandas库来处理整列数据的需求简直再合适不过啦!我给你准备了两种简单易懂的方法,还特意考虑了NaN值的情况:

第一步:先安装pandas(如果还没装的话)

打开终端/命令提示符,运行下面的命令:

pip install pandas

第二步:读取并处理CSV文件

假设你的CSV里存储温度范围的列名叫温度范围,替换成你实际的列名就行,下面是两种实现方式:

方法1:自定义函数(新手友好,逻辑清晰)

这种方法每一步都很直观,适合理解整个处理流程:

import pandas as pd
import numpy as np

# 读取你的CSV文件,把路径换成你自己的文件路径
df = pd.read_csv("你的温度数据.csv")

# 定义一个函数,处理单个温度范围字符串
def get_avg_temp(temp_str):
    # 先判断是不是NaN值,如果是直接返回NaN
    if pd.isna(temp_str):
        return np.nan
    # 把"20-25"这样的字符串拆分成两个数字
    low_temp, high_temp = temp_str.split("-")
    # 转成浮点数后计算平均值
    return (float(low_temp) + float(high_temp)) / 2

# 把函数应用到整列,生成新的"平均温度"列
df["平均温度"] = df["温度范围"].apply(get_avg_temp)

# 保存处理后的结果到新CSV
df.to_csv("处理后的温度数据.csv", index=False)

方法2:pandas内置字符串方法(更高效,适合大数据量)

如果你的CSV数据量很大,用这种方法速度会更快,而且代码更简洁:

import pandas as pd

# 读取CSV文件
df = pd.read_csv("你的温度数据.csv")

# 把温度范围列拆分成"低温"和"高温"两列,同时转成浮点数
df[["低温", "高温"]] = df["温度范围"].str.split("-", expand=True).astype(float)

# 计算平均值,自动处理NaN值(原单元格是NaN的话,计算后还是NaN)
df["平均温度"] = (df["低温"] + df["高温"]) / 2

# 可以删掉临时的"低温""高温"列(可选)
df = df.drop(["低温", "高温"], axis=1)

# 保存结果
df.to_csv("处理后的温度数据.csv", index=False)

小提示

  • 两种方法都会自动保留原数据中的NaN值,不会出现报错的情况
  • 记得把代码里的文件路径和列名替换成你自己的实际内容哦

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:47:01