我有一个数据框,其中索引是日期。它有两列。我想找到一种方法将这些数据按一年中的某一天进行分组,然后获得最大值和最小值。为了解决这个问题,我创建了一个 DOY 列,它可靠地为我提供了每年的日期。
我通过在 DOY 列上分组解决了这个问题,但我希望有一种更简单的方法可以使用 pandas 函数实现相同的效果。有的话请告诉我!
TMAXDEC TMINDEC DOY 日期
2005-01-01 60.08 21.92 1 2005-01-02 57.02 21.92 2 2005-01-03 55.94 32.00 3 2005-01-04 39.02 24.98 4 2005-01-05 37.94 15.08 5 ………… 2014年12月27日 51.98 26.96 361 2014年12月28日 55.94 21.20 362 2014年12月29日 48.02 12.20 363 2014年12月30日 37.94 12.02 364 2014年12月31日 26.96 7.16 365 3650 行 × 3 列
请尝试此代码:
import pandas as pd
# Creating a sample DataFrame
data = {'Date': pd.date_range(start='2005-01-01', end='2014-12-31'),
'TMAXDEC': range(1, 3661),
'TMINDEC': range(3651, 7301)}
df = pd.DataFrame(data)
# Extracting day of the year from the 'Date' column
df['Day_of_Year'] = df['Date'].dt.dayofyear
# Grouping by the day of the year and calculating the mean of TMAXDEC and TMINDEC
grouped_df = df.groupby('Day_of_Year').agg({'TMAXDEC': 'mean', 'TMINDEC': 'mean'}).reset_index()
print(grouped_df)