使用
groupby,为每个组分别找到
head和。
tail``concat
g = df.groupby('ID')(pd.concat([g.head(1), g.tail(1)]) .drop_duplicates() .sort_values('ID') .reset_index(drop=True)) Time ID X Y0 8:00 A 23 1001 20:00 A 35 2202 9:00 B 24 1103 23:00 B 38 2504 11:00 C 26 1305 22:00 C 37 2406 15:00 D 30 170
如果可以保证每个ID组 至少有 两行,
drop_duplicates则不需要调用。
细节
g.head(1) Time ID X Y0 8:00 A 23 1001 9:00 B 24 1103 11:00 C 26 1307 15:00 D 30 170g.tail(1) Time ID X Y7 15:00 D 30 17012 20:00 A 35 22014 22:00 C 37 24015 23:00 B 38 250pd.concat([g.head(1), g.tail(1)]) Time ID X Y0 8:00 A 23 1001 9:00 B 24 1103 11:00 C 26 1307 15:00 D 30 1707 15:00 D 30 17012 20:00 A 35 22014 22:00 C 37 24015 23:00 B 38 250
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)