Преобразовать в 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 шт):

Автор решения: mrgervant

Если Вам нужно считать данные из 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)
→ Ссылка