下表包含4列:Place(对象类型)Dates(DateTime)id(对象类型)Event_DateTime(DateTime)
Place|Dates|id|Event_Datetime
-|-|
AAA|2022-01-03|1234|2022-01-03 14:42:56
Bbb|2022-03-16|4567|2022-03-16 15:31:00
Bbb|2022-03-16|4567|2022-03-16 16:13:28
Bbb|2022-03-16|7890|2022-03-16 15:31:00
Bbb|2022-03-16|7890|2022-03-16 16:13:28
CCC|2021-09-12|2345|2021-09-12 08:01:48
CCC|2021-09-12|5486|2021-09-12 08:02:38
我的任务是1)按地点和日期分组,如果有一个以上的唯一ID,则检查是否所有的事件_日期时间都相同。这可以在小时和分钟级别完成,不需要包括秒。结果可能在新列Check
中,该列的值可能为“是”和“否”。
例如,团体地点‘bbb’和日期‘2022-03-16’,有两个ID,‘4567’,‘7890’。我们可以看到这两个ID具有相同的EVENT_DATETIME‘2022-03-16 15:31:00’、‘2022-03-16 16:13:28’。因此,最后一列Check
应该说是。
然而,对于组‘ccc’和日期‘2021-09-12’,ID的EVENT_DATETIME不同,因此check
列应该为no。
最终输出:
Place|Dates|id|Event_Datetime|勾选
-|
AAA|2022-01-03|1234|2022-01-03 14:42:56|否
Bbb|2022-03-16|4567|2022-03-16 15:31:00|是
Bbb|2022-03-16|4567|2022-03-16 16:13:28|是
Bbb|2022-03-16|7890|2022-03-16 15:31:00|是
Bbb|2022-03-16|7890|2022-03-16 16:13:28|是
Ccc|2021-09-12|2345|2021-09-12 08:01:48|否
Ccc|2021-09-12|5486|2021-09-12 08:02:38|否
我很感激任何帮助或建议。
d = {'Place': ['aaa', 'bbb', 'bbb', 'bbb', 'bbb', 'ccc', 'ccc'],
'dates': ['2022-01-03', '2022-03-16', '2022-03-16',
'2022-03-16', '2022-03-16', '2021-09-12',
'2021-09-12'],
'id': ['1234', '4567', '4567',
'7890', '7890', '2345',
'2345'],
'event_date_time': ['2022-01-03 14:42:56', '2022-03-16 15:31:00', '2022-03-16 16:13:28',
'2022-03-16 15:31:00', '2022-03-16 16:13:28', '2021-09-12 08:01:48',
'2021-09-12 08:01:48']
}
sample_df = pd.DataFrame(d)
sample_df['event_date_time'] = pd.to_datetime(sample_df['event_date_time'])
sample_df['dates'] = pd.to_datetime(sample_df['dates'])
sample_df
1条答案
按热度按时间nsc4cvqm1#
将
pandas.DataFrame.groupby
与duplicated
一起使用的一种方法:产出: