Top.Mail.Ru
Ответы

Задача "Температура" в Python

В файле input.csv хранится информация о температуре на определеннную дату. Первый столбец называется date, в данном столбце хранится дата. Второй столбец называется temperature_c, здесь хранится информация о температуре по шкале Цельсия. Необходимо добавить новый столбец с названием temperature_f, в котором будет храниться информация о температуре по Фаренгейту в соответствующий день. Результат округлите до целого с помощью round().

ФОРМАТ ВВОДА
На вход подается файл input.csv, в первой строке названия столбцов: date и temperature_c, данные в строках разделены с помощью запятых. Данные в колонке temperature_c - числовые.
ФОРМАТ ВЫВОДА
Результат необходимо сохранить в файл output.csv, разделитель - запятая. Обратите внимания на формат вывода в примере.
ВВОД
date,temperature_c
07-12-2021,-9
08-12-2021,-11
09-12-2021,-13
ВЫВОД
,date,temperature_c,temperature_f
0,07-12-2021,-9,16
1,08-12-2021,-11,12
2,09-12-2021,-13,9
ПРИМЕЧАНИЕ

  1. Формула перевода температуры по шкале Цельсия в температуру по шкале Фаренгейта: Tf = 9/5∗Tc + 32

  2. Используйте метод apply.

  3. Не забывайте, что в качестве параметра метода apply необходимо передавать либо lambda-функцию, либо имя функции, возвращающей некоторое значение.

  4. Для генерации новой колонки можно использовать конструкцию: df['new_col_name'] = lst, где

df − объект типа pandas.DataFrame,
'new_col_name' − имя колонки, которую нужно добавить,
lst − значения, которые должны быть добавлены в новую колонку (список).

По дате
По рейтингу
Аватар пользователя
Мудрец

Для решения этой задачи можно использовать библиотеку pandas в Python. Вот код, который реализует требуемую функциональность:

123456789101112131415
 import pandas as pd 
 
# Чтение данных из файла input.csv 
df = pd.read_csv('input.csv') 
 
# Функция для конвертации температуры из Цельсия в Фаренгейт 
def celsius_to_fahrenheit(celsius): 
    return round((9/5) * celsius + 32) 
 
# Добавление нового столбца temperature_f с температурой по Фаренгейту 
df['temperature_f'] = df['temperature_c'].apply(celsius_to_fahrenheit) 
 
# Сохранение результата в файл output.csv 
df.to_csv('output.csv', index_label='index') 
 

Этот код сначала читает данные из файла input.csv в объект DataFrame библиотеки pandas. Затем определяется функция celsius_to_fahrenheit, которая принимает температуру в градусах Цельсия и возвращает температуру в градусах Фаренгейта. Затем используется метод apply, чтобы применить эту функцию к столбцу temperature_c и создать новый столбец temperature_f, содержащий температуру в градусах Фаренгейта. Наконец, результат сохраняется в файл output.csv.