我有一个csv文件,其中包含类似的数据
样本csv
名称 | 开始 | 结束 |
---|---|---|
John | 12:00 | 13:00 |
John | 12:10 | 13:00 |
John | 12:20 | 13:20 |
Tom | 12:00 | 13:10 |
John | 13:50 | 14:00 |
Jerry | 14:00 | 14:30 |
Alice | 15:00 | 16:00 |
Jerry | 11:00 | 15:00 |
对于熊猫,它可能看起来像这样:
import pamdas as pd
df = (pd.read_csv('file_01.csv',parse_dates=['Start','End']).
sort_values(['Name','Start']))
df['split'] = (df.groupby('Name').
apply(lambda x: (x.Start>x.End.shift().bfill()).cumsum()).
droplevel(0))
res = (df.groupby(['Name','split']).
apply(lambda x: [x.Start.min().strftime('%H-%M'),x.End.max().strftime('%H-%M')]).
groupby('Name').
apply(list).
to_dict())
>>> res
'''
{'Alice': [['15-00', '16-00']],
'Jerry': [['11-00', '15-00']],
'John': [['12-00', '13-20'], ['13-50', '14-00']],
'Tom': [['12-00', '13-10']]}