【发布时间】:2019-08-27 14:42:39
【问题描述】:
我有一个像这样的df:
number city date
1 Denver_1 2019-01-14
1 Denver_1 2019-01-15
1 Denver_1 2019-01-16
1 Denver_2 2019-03-28
1 Denver_2 2019-03-29
2 Denver_1 2019-05-14
2 Denver_1 2019-05-15
2 Denver_1 2019-05-16
2 Denver_2 2019-01-28
2 Denver_2 2019-01-29
2 Seattle 2019-03-22
2 Seattle 2019-03-22
3 Denver_2 2019-05-28
3 Denver_2 2019-05-29
3 Seattle 2019-03-21
3 Seattle 2019-03-21
我想按 数字 分组并选择 Denver 与较高的日期 并离开 Seattle 的方式它们是因为它们不像 Denver 那样重复。 我想要的结果如下:
number city date
1 Denver_2 2019-03-28
1 Denver_2 2019-03-29
2 Denver_1 2019-05-14
2 Denver_1 2019-05-15
2 Denver_1 2019-05-16
2 Seattle 2019-03-22
2 Seattle 2019-03-22
3 Denver_2 2019-05-28
3 Denver_2 2019-05-29
3 Seattle 2019-03-21
3 Seattle 2019-03-21
我试过了:
df2 = df.groupby(['number']).apply(lambda x: x['city'].unique())
number
1 [Denver_1, Denver_2]
2 [Denver_1, Denver_2, Seattle]
它向我显示了每个数字的不同城市,但我不知道如何将最大日期过滤器添加到其中并将其应用于主 df。
我看到的使用 groupby().filter() 的其他示例将摆脱 Seattle 在我的情况下。
【问题讨论】:
标签: python-3.x pandas filter group-by