合并python csv中的行



我有一个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']]}

最新更新