Почему я получаю отрицательные значения температуры?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Почему я получаю отрицательные значения температуры?

Сообщение Anonymous »


У меня проблема с кодом. Я хочу получить среднюю температуру по городу Киеву, но получаю отрицательные значения температуры для всех сезонов и не знаю почему. В преобразовании градусов Фаренгейта в Цельсий нет ничего плохого.
Вот код:

Код: Выделить всё

# Selecting temperature data from Kiev

kiev_df = df[df["City"] == "Kiev"].copy()

# Converting fahr to celsius
kiev_df = fahr_to_celsius(kiev_df)

# Converting "dt" column to datetime format
kiev_df.loc[:, "dt"] = pd.to_datetime(kiev_df["dt"], format="%Y%m%d")

def get_season(month):
"""

Dividing months into seasons.

Parameters: month (int): Month number (1 for January, 2 for Februrary, etc.)

Returns:
str: The season corresponding to input months.

"""
if month in [12, 1, 2]:
return "Winter"
elif month in [3, 4, 5]:
return "Spring"
elif month in [6, 7, 8]:
return "Summer"
else:
return "Autumn"

# Map get_season function to the month of each date in "dt" column
kiev_df.loc[:, "Season"] = kiev_df["dt"].dt.month.map(get_season)

# Group data by year and season, calculate the mean of temp data
seasonal_avg = kiev_df.groupby([kiev_df["dt"].dt.year, "Season"]).agg({
"AverageTemperature": "mean" ,
"Tuncertainty": "mean"
}).reset_index()

seasonal_avg.columns = ["Year", "Season", "AvgTemperature", "AvgUncertainty"]

print(seasonal_avg)
Я пытаюсь получить среднюю температуру для всех сезонов, но получаю отрицательные значения, и это неверно.
А вот код для преобразования
Создание функции для преобразования градусов Фаренгейта в градусы Цельсия

Код: Выделить всё

def fahr_to_celsius(df):
"""
Converts Fahrenheit temperature to Celsius (excluding the "Tuncertainty" column)

Parameters:
- df (DataFrame): DataFrame containing temperature data.

Returns:
- DataFrame: A modified DataFrame with temperature columns converted from Fahrenheit to Celsius values.
"""

# Converting these columns from fahr to celsius
celsius_conv = ["TMAX", "TMIN", "AverageTemperature"]

for col in celsius_conv:
df[col] = (df[col] - 32) / 1.8

return df
Вот пример данных:

Код: Выделить всё

    dt  AverageTemperature  Tuncertainty    City    Country TMAX        TMIN
114929  17440401    49.676      4.4964      Kiev    Ukraine 54.1724     45.1796
114930  17440501    55.6556     3.321       Kiev    Ukraine 58.9766     52.3346
114931  17440601    63.3074     3.0654      Kiev    Ukraine 66.3728     60.242
114932  17440701    66.9002     2.8656      Kiev    Ukraine 69.7658     64.0346
114933  17440801    -9999       2.9466      Kiev    Ukraine 68.28430418 63.60738403


Источник: https://stackoverflow.com/questions/781 ... ure-values
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»