【发布时间】:2017-10-23 11:53:24
【问题描述】:
首先,我有一个包含这些列的数据框:
issue_date | issue | special | group
多行可以包含相同的group。对于每个组,我想得到它的最大日期:
date_current = history.groupby('group').agg({'issue_date' : [np.min, np.max]})
date_current = date_current.issue_date.amax
之后,我想通过max_date-months 过滤每个组:
date_before = date_current.values - pd.Timedelta(weeks=4*n)
即,对于每个组,我想丢弃 issue_date < date_before 列所在的行:
hh = history[history['issue_date'] > date_before]
ValueError:长度必须匹配才能比较
最后一行不起作用,因为长度不匹配。这是意料之中的,因为我的数据框中有 x 行,但 date_before 的长度等于我的数据框中的组数。
给定数据,我想知道如何按组执行减法或过滤。我是否必须以某种方式迭代数据框?
【问题讨论】:
标签: python pandas group-by filtering