#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, я изменил его, теперь там написано «Дата имени группы не найдена»