Click here to see an image that contains a screenshot sample of the data. 我有一个CSV文件,其中包含温度范围列,其值为" 20-25"存储为字符串。我需要将它转换为22.5作为浮点数。 需要对整个这样的值列进行此操作,而不是单个值。我想知道如何在Python中完成此操作,因为我对它很新。
请注意示例数据图片中的记录中还有NaN值
答案 0 :(得分:1)
如同在反应中所说的那样,使用“ - ”作为参数拆分数组。 其次,创建一个float数组。最后,使用numpy取平均值。
import numpy as np
temp_input = ["20-25", "36-40", "10-11", "23-24"]
# split and convert to float
# [t.split("-") for t in temp_input] is an inline iterator
tmp = np.array([t.split("-") for t in temp_input], dtype=np.float32)
# average the tmp array
temp_output = np.average(tmp, axis=1)
这是一个oneliner:
temp_output = [np.average(np.array(t.split('-'), dtype=np.float32)) for t in temp_input]