我有一个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.解决方案,但它不起作用。
如何找到每天的First
和Last Value
(截至日期)?
分析解答
您可以将"Date"列值转换为日期(务);然后groupby
它并使用first
和last
获得所需的结果:
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