Панды: Найти исходный индекс значения с сгруппированным фреймом данных

Список передается как ссылка на функцию. Таким образом, список разделяется между глобальным пространством и функцией. Первое изменение изменяет список, и это изменение отражается в обоих пространствах. Но тогда вы делаете и присваиваете переменной списка. Это создает новый список в функции. Исходный список существует в глобальном пространстве, но он больше не существует в этой функции. Таким образом, все изменения, внесенные в список в функции из этой точки, видны только внутри функции.

Другой способ думать об этом экземпляре состоит в том, что этот список является типом контейнера. Первая строка функции меняет то, что находится в контейнере. Вторая строка (назначение) фактически изменяет используемый вами контейнер. Это то, что верно для списков, но также и для любого объекта. Вот почему решение, данное @Chris_Rands в комментариях, работает: оно изменяет то, что находится в контейнере, оно не меняет контейнер.

1
задан Fabio Capezzuoli 19 January 2019 в 12:18
поделиться

1 ответ

Сначала создайте DatetimeIndex, затем агрегируйте по Grouper с days и idxmax idxmin для даты и времени для min и max температура:

df['DT'] = pd.to_datetime(df['DT'])
df = df.set_index('DT')

df = df.groupby(pd.Grouper(freq='D'))['T-C'].agg(['idxmax','idxmin','max','min'])
print (df)
                        idxmax              idxmin  max  min
DT                                                          
2015-01-01 2015-01-01 05:00:00 2015-01-01 00:00:00 -2.0 -2.5
2015-01-02 2015-01-02 00:00:00 2015-01-02 03:00:00  1.1  0.5
0
ответ дан jezrael 19 January 2019 в 12:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: