Панды: Найти исходный индекс значения с сгруппированным фреймом данных - PullRequest
0 голосов
/ 19 января 2019

У меня есть кадр данных с RangeIndex, временными метками в первом столбце и несколькими тысячами часовых наблюдений за температурой во втором.

Достаточно легко сгруппировать наблюдения по 24 и найти суточные значения Tmax и Tmin.,Но мне также нужна временная метка максимального и минимального значений каждого дня.

Как я могу это сделать?

Я надеюсь, что смогу получить помощь, не публикуя рабочий пример, потому что характер данныхделает это непрактичным.

РЕДАКТИРОВАТЬ: Вот некоторые данные, охватывающие два дня.

        DT                      T-C
    0   2015-01-01 00:00:00     -2.5
    1   2015-01-01 01:00:00     -2.1
    2   2015-01-01 02:00:00     -2.3
    3   2015-01-01 03:00:00     -2.3
    4   2015-01-01 04:00:00     -2.3
    5   2015-01-01 05:00:00     -2.0
   ...
    24  2015-01-02 00:00:00     1.1
    25  2015-01-02 01:00:00     1.1
    26  2015-01-02 02:00:00     0.8
    27  2015-01-02 03:00:00     0.5
    28  2015-01-02 04:00:00     1.0
    29  2015-01-02 05:00:00     0.7

1 Ответ

0 голосов
/ 19 января 2019

Сначала создайте 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...