У меня проблема с кодом. Я хочу получить среднюю температуру по городу Киеву, но получаю отрицательные значения температуры для всех сезонов и не знаю почему. В преобразовании градусов Фаренгейта в Цельсий нет ничего плохого.
Вот код:
Код: Выделить всё
# 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