Pandas получает все строки на основе столбца даты

#python-3.x #pandas

#python-3.x #pandas

Вопрос:

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

 parsed_date=datetime.datetime.strptime(payout_date, '%d/%m/%y %H:%M')
helper_date=parsed_date
helper_date = datetime.timedelta(days=1)

mask=(df["date"]>=parsed_date) amp; (df["date"]<helper_date)
same_payout=df.loc[mask]
print("Parsed " str(parsed_date))
print("Helper " str(helper_date))
print(same_payout)
  

и я получаю это

 Parsed 2016-08-03 00:00:00
Helper 2016-08-04 00:00:00
Empty DataFrame
Columns: [id, costs, date]
Index: []
  

и я не знаю, что я делаю не так

вот образец информации в образце фрейма данных

Ответ №1:

Используйте Grouper объект:

 df.groupby(pd.Grouper(key='date', freq='D'))['Costs'].sum()
  

Комментарии:

1. не будет ли это суммировать весь столбец «Затраты»?

2. @Duke Нет, это дало бы одну сумму Costs для каждого уникального значения date . Разве это не то, чего вы хотите?

3. не для каждого уникального значения, но для каждого дня, у меня могут быть затраты, зарегистрированные в 11 утра, и еще один в 11: 30 утра, поэтому эти 2 должны быть добавлены, поскольку они зарегистрированы в тот же день

4. сначала я понял, что он доступен только с datetimeindex, blablabla, я изменил его, теперь там написано «Дата имени группы не найдена»