Как я могу сгруппировать даты в pandas - PullRequest
0 голосов
/ 16 июня 2020
    Datos
2015-01-01  58
2015-01-02  42
2015-01-03  41
2015-01-04  13
2015-01-05  6
...     ...
2020-06-18  49
2020-06-19  41
2020-06-20  23
2020-06-21  39
2020-06-22  22

2000 rows × 1 columns

У меня есть этот df, который состоит из столбца, данные которого представляют среднюю температуру каждого дня в интервале лет. Я хотел бы знать, как получить максимум каждого дня (учитывая, что в году 365 дней) и получить df, подобное этому:

        Datos
1   40
2   50
3   46
4   8
5   26
...     ...
361     39
362     23
363     23
364     37
365     25

365 rows × 1 columns

Простите мое незнание и большое спасибо за помощь.

Ответы [ 2 ]

1 голос
/ 16 июня 2020

Вы можете это сделать:

df['Date'] = pd.to_datetime(df['Date'])
df = df.groupby(by=pd.Grouper(key='Date', freq='D')).max().reset_index()
df['Day'] = df['Date'].dt.dayofyear
print(df)

           Date  Temp  Day
0    2015-01-01  58.0    1
1    2015-01-02  42.0    2
2    2015-01-03  41.0    3
3    2015-01-04  13.0    4
4    2015-01-05   6.0    5
...         ...   ...  ...
1995 2020-06-18  49.0  170
1996 2020-06-19  41.0  171
1997 2020-06-20  23.0  172
1998 2020-06-21  39.0  173
1999 2020-06-22  22.0  174
0 голосов
/ 16 июня 2020

Создайте новый столбец:

df["day of year"] = df.Datos.dayofyear

Затем

df.groupby("day of year").max()
...