将包含整数值范围的字符串数组转换为浮点数组

时间:2018-05-23 12:35:26

标签: python-3.x numpy scikit-learn spyder sklearn-pandas

Click here to see an image that contains a screenshot sample of the data. 我有一个CSV文件,其中包含温度范围列,其值为" 20-25"存储为字符串。我需要将它转换为22.5作为浮点数。 需要对整个这样的值列进行此操作,而不是单个值。我想知道如何在Python中完成此操作,因为我对它很新。

请注意示例数据图片中的记录中还有NaN值

1 个答案:

答案 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]