Преобразовать в csv-файле градусы Фаренгейта в градусы Цельсия
Есть файл csv, в нем есть колонка temperature, там - значения в градусах Фаренгейта. Их нужно преобразовать в градусы Цельсия с помощью этих функций:
# Function definition
def temp_to_celcius(f):
return (f - 32) / 1.8
# Примеры вызова:
print(to_celcius(100))
print(to_celcius(95))
С помощью кода все выходит, но нужно все вручную вписывать.
Но мне нужно так, чтобы все значения из колонки temperature в питоне были преобразованы в градусы Цельсия. Как это сделать?
Прилагаю скрин файла
Ответы (1 шт):
Если Вам нужно считать данные из csv и обработать внутри Python, можете использовать pandas
- функция read-csv().
В полученном из csv dataframe
можно будет применить Вашу функцию ко всей колонке:
import pandas as pd
def temp_to_celcius(f):
return (float(f) - 32) / 1.8
df = pd.read_csv('test.csv', sep=';', header=0)
df['temperature'] = df['temperature'].apply(temp_to_celcius)
print(df['temperature'])
Вывод (сделал мини-таблицу с 4 значениями):
0 37.777778
1 35.555556
2 23.333333
3 14.444444
Name: temperature, dtype: float64
Если далее нужно что-то ещё сделать с данными, но не хочется работать с dataframe-ом, то можно положить все значения колонки в список:
temp_list = list(df['temperature'])
# --> [37.77777777777778, 35.55555555555556, 23.333333333333332, 14.444444444444445]
Если же Вам требуется изменить значения в самом csv (или создать новый), то поможет to_csv() - параметры подбирайте под себя, у меня в примере прописаны такие, чтобы перезаписать csv новыми значениями температуры:
df.to_csv('test.csv', sep=';', index=False)