首页 > 解决方案 > groupby first 作为 pandas 中的字典

问题描述

我有如下所示的数据框。

session      slot_num     appt_time
s1           1            2020-01-06 09:00:00
s1           2            2020-01-06 09:20:00
s1           3            2020-01-06 09:40:00
s1           3            2020-01-06 09:40:00
s1           4            2020-01-06 10:00:00
s1           4            2020-01-06 10:00:00
s2           1            2020-01-06 08:20:00
s2           2            2020-01-06 08:40:00
s2           2            2020-01-06 08:40:00
s2           3            2020-01-06 09:00:00
s2           4            2020-01-06 09:20:00
s2           5            2020-01-06 09:40:00
s2           5            2020-01-06 09:40:00
s2           6            2020-01-06 10:00:00
s3           1            2020-01-09 13:00:00
s3           1            2020-01-09 13:00:00
s3           2            2020-01-09 13:20:00
s3           3            2020-01-09 13:40:00

从上面我想创建一个字典,其中键作为会话,值作为每个 appt_time 的开始时间。

预期输出:

d = {'S1':'2020-01-06 09:00:00',
     'S2':'2020-01-06 08:20:00',
     'S3':'2020-01-09 13:00:00'}

标签: pandaspandas-groupby

解决方案


DataFrame.drop_duplicates与转换为索引一起使用sesion,选择列Series和最后一次使用Series.to_dict

d = df.drop_duplicates('session').set_index('session')['appt_time'].to_dict()
print (d)
{'s1': '2020-01-06 09:00:00', 's2': '2020-01-06 08:20:00', 's3': '2020-01-09 13:00:00'}

推荐阅读