我有一个pandasDataFrame,如下所示:

Price Date
25149.570 2/5/2017 14:22
24799.680 2/5/2017 14:22
24799.680 2/5/2017 14:22
14570.000 2/5/2017 14:47
14570.001 2/5/2017 14:47
14570.001 2/5/2017 14:47
14570.000 2/5/2017 15:01
14570.001 2/5/2017 15:01
14570.001 2/5/2017 15:01
14600.000 2/6/2017 17:49
14600.000 2/6/2017 17:49
14800.000 2/6/2017 17:49
14600.000 2/6/2017 17:49
14600.000 2/6/2017 17:49
14600.000 2/6/2017 18:30
14600.000 2/6/2017 18:30
14800.000 2/6/2017 18:30
14600.000 2/6/2017 18:30
14600.000 2/6/2017 18:30

我想基于日期列找到每一天的第一个和最后一个值。结果可以是下面的第一天:

Date first last
2/5/2017 25149.57 14570.001

我尝试使用这个Q/A.解决方案,但它不起作用。 如何找到每天的FirstLast Value(截至日期)?

分析解答

您可以将"Date"列值转换为日期(务);然后groupby它并使用firstlast获得所需的结果:

out = df.groupby(pd.to_datetime(df['Date']).dt.strftime('%m/%d/%Y'))['Price'].agg(['first', 'last']).reset_index()

输出:

         Date     first       last
0  02/05/2017  25149.57  14570.001
1  02/06/2017  14600.00  14600.000