如何对多年内同一天的值进行分组?

问题描述 投票:0回答:1

Dataframe with Day of Year

我有一个数据框,其中索引是日期。它有两列。我想找到一种方法将这些数据按一年中的某一天进行分组,然后获得最大值和最小值。为了解决这个问题,我创建了一个 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 列

python pandas group-by
1个回答
0
投票

请尝试此代码:

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)
© www.soinside.com 2019 - 2024. All rights reserved.