【发布时间】:2021-11-20 12:38:23
【问题描述】:
我有一个df
qty val date
10 100 2021-09-15
11 111 2021-09-22
20 222 2021-09-22
35 333 2021-09-15
45 444 2021-10-15
79 555 2021-10-15
79 555 2021-10-07
87 666 2021-11-15
45 777 2021-11-15
97 888 2021-11-22
我正在尝试按每个月的 max(date) 对值进行分组,因此我只会采用 2021-09-22 / 2021-10-15 / 2021-11-22 的值,因为这些日期是每个月的最高日期。我希望在groupby 期间获得这些日期的qty & val 的总和。或者只是按date 分组,然后只选择date 的最后日期的值,但我认为首先删除不需要的数据更有效。
我尝试使用:
group = df.groupby('date')
group_max = groups.apply(lambda g: g[g['date'] == g['date'].max()])
但是没有运气,我将如何在分组之前或之后进行过滤,以便我只能在 date 中获取每个月最后日期的值?
【问题讨论】:
-
日期列是什么类型的?字符串还是时间日期?
-
是日期时间,我事先用
df.date = pd.to_datetime(df.date)