【发布时间】:2020-07-25 19:19:57
【问题描述】:
我有一个看起来像这样的熊猫数据框:
pd.DataFrame({'a':['cust1', 'cust1', 'cust2', 'cust3', 'cust3', 'cust4', 'cust4'],
'date':[date(2019, 1, 20), date(2020, 6, 15), date(2017, 1, 10), date(2015, 6, 12), date(2017, 12, 15), date(2018, 12, 10), date(2017, 1, 5)]
})
a date
0 cust1 2019-01-20
1 cust1 2020-06-15
2 cust2 2017-01-10
3 cust3 2015-06-12
4 cust3 2017-12-15
5 cust4 2018-12-10
6 cust4 2017-01-05
如果“日期”列中的年份是“背靠背”或彼此相邻(即年份之间没有间隔)并且至少有 2 个不同的年份,我想在“a”列中按组选择所有行“a”中每组的日期。
生成的数据框应如下所示。
a date
0 cust1 2019-01-20
1 cust1 2020-06-15
5 cust4 2018-12-10
6 cust4 2017-01-05
解释:未选择第 2 行,因为组“cust2”只有 1 年/日期。组 'cust3' 未被选中,因为 2015 年和 2017 年之间存在“差距”。
【问题讨论】:
-
为什么不在结果中包含第 4 行(即使它来自第 5 行的连续一年)?是不是因为它来自与第 5 行不同的组?
-
是的。我只想在组内查看
标签: python pandas dataframe pandas-groupby