Можно ли повторно определить и суммировать значения в Pandas кадре данных, указав диапазон дат? - PullRequest
0 голосов
/ 25 февраля 2020

У меня есть кадр данных, подобный следующему (даты со связанным двоичным значением (независимо от того, происходит ли наводнение), охватывающий в общей сложности 20 лет):

...
2019-12-27  0.0 
2019-12-28  1.0 
2019-12-29  1.0 
2019-12-30  0.0 
2019-12-31  0.0 
...

Мне нужно произвести подсчет ( т. е. сумма, учитывая, что значения являются двоичными) в ряде пользовательских диапазонов дат, например, от '24 -05-2019 до 09-09-2019' или от '15 -10-2019 до 29-12-2019', и т. д. c.

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

Есть идеи?

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 25 февраля 2020

Если даты представляют собой DatetimeIndex и индекс кадра данных или серии, вы можете напрямую выбрать соответствующие строки:

df.loc['24-05-2019':'09-09-2019', 'flood'].sum()
0 голосов
/ 25 февраля 2020

Поскольку это Pandas фрейм данных, вы должны иметь возможность сделать что-то вроде:

start_date = df[df.date == '24-05-2019']].index.values
end_date = df[df.date == '09-09-2019'].index.values

subset = df[start_date:end_date]

sum(subset.flood)   # Or other maths 

, где 'date' и 'flood' - ваши заголовки столбцов, а 'df' - ваш фрейм данных. Это предполагает, что ваши даты являются строками, и что каждая дата появляется только один раз. Если нет, вам нужно будет выбрать нужную дату из списка значений индекса в «start_date» и «end_date».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...