【发布时间】:2021-02-20 23:05:23
【问题描述】:
我有以下框架:
frame=pd.DataFrame(data=(['London','2020-08-31',3,4],['London','2020-09-30',1,5],
['London','2020-10-31',2,6],['London','2020-11-30',7,3],
['Paris','2020-08-31',9,3],['Paris','2020-09-30',1,8],
['Paris','2020-10-31',4,5],['Paris','2020-11-30',2,9],
['Paris','2020-12-31',3,8]),columns=["Location","Date","X","Y"])
看起来像这样:
Location Date X Y
0 London 2020-08-31 3 4
1 London 2020-09-30 1 5
2 London 2020-10-31 2 6
3 London 2020-11-30 7 3
4 Paris 2020-08-31 9 3
5 Paris 2020-09-30 1 8
6 Paris 2020-10-31 4 5
7 Paris 2020-11-30 2 9
8 Paris 2020-12-31 3 8
我想按位置分组并显示最小和最大日期及其对应的值。预期的输出是这样的:
X Y
Location Min_Date Max_Date Min_Date_Value Max_Date_Value Min_Date_Value Max_Date_Value
London 8/31/2020 11/30/2020 3 7 4 3
Paris 8/31/2020 12/31/2020 9 3 3 8
我可以通过frame.groupby(by="Location")["Date"].agg(["min","max"]) 生成最小和最大日期,但之后我也很难将每个日期对应值的列可视化。
【问题讨论】:
-
试试
frame.groupby(by="Location").agg(["min","max"]) -
这不会给出你期望的值,它会为每一列选择最大值和最小值,并且不会对应于日期的最大值和最小值
标签: python pandas pandas-groupby