我需要过滤一个包含多个日期条目的大型变量数据集。在这种情况下,我只想保留在第一个日期输入的数据。
例如,在下面的数据集中:
dfex = pd.DataFrame({'names':['jim','jim','jim','jim','jim','jim','jim','jim','jim',
'bob','bob','bob','bob','bob','bob',
'sara','sara','sara','sara','sara','sara','sara','sara','sara','sara'],
'dates':['01-01-19','01-01-19','01-01-19','01-05-19','01-06-19','01-07-19','01-08-19','01-09-19','01-10-19',
'01-05-19','01-05-19','01-07-19','01-08-19','01-09-19','01-10-19',
'01-02-19','01-02-19','01-02-19','01-02-19','01-05-19','01-06-19','01-07-19','01-08-19','01-09-19','01-10-19']})
dfex['dates'] = pd.to_datetime(dfex['dates'])
dfex
Jim会保留前3排,Bob保留前2排,Sara保留前5排。
1条答案
按热度按时间68bkxrlz1#
对于
N = 1
(原始问题),使用groupby.transform
和布尔索引:如果初始日期以后在组中可以重复,并且您不想保留以后出现的日期,请用途:
输出量:
第一个
N
个唯一日期不考虑其值(仅按位置)
或者对于第一个
N
最早日期:输出量:
最后一个
N
唯一或
N
最新日期:输出量: