Преобразование массива строк, содержащих диапазон целочисленных значений, в массив чисел с плавающей точкой - PullRequest
0 голосов
/ 23 мая 2018

Нажмите здесь, чтобы увидеть изображение, которое содержит образец снимка экрана. У меня есть CSV-файл со столбцом для диапазона температур со значениями типа «20-25», которые хранятся в виде строки.Мне нужно конвертировать это в 22,5 как число с плавающей запятой. Нужно ли это делать для всего столбца таких значений, а не для одного значения . Я хочу знать, как это можно сделать в Python, поскольку я очень новичок в этом.

Обратите внимание на пример изображения данных, что в записях также есть значения NaN

1 Ответ

0 голосов
/ 23 мая 2018

Как сказано в реакциях, разделите массив, используя "-" в качестве аргумента.Во-вторых, создайте массив с плавающей точкой.Наконец, возьмите среднее значение, используя 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)

А вот и онлайнер:

temp_output = [np.average(np.array(t.split('-'), dtype=np.float32)) for t in temp_input]
...