我目前有一個有 3 列的資料框,看起來像這樣。
stations neighbourhoods Distance
9 68 0.429490
9 74 0.542039
9 66 0.604525
20 504 0.710707
20 83 0.785087
28 31 7.116540
28 30 7.839042
28 34 9.190559
28 26 10.320423
如您所見,站列由 3 組 = 9、20、28 組成。根據鄰域,它們都有相應的距離。距離已經根據各自的站點進行了排序。我想要實作的是根據他們的站提取每個最小值和最大值,并將其放入另一個資料框中。
所需的資料框必須如下所示。
stations Minimum Distance Maximum distance
9 0.429490 0.604525
20 0.710707 0.785087
28 7.116540 10.320423
到目前為止,我已經嘗試了此代碼df_max = df.groupby('Distance').idxmax()的最大數量,但它沒有用。我要如何繼續?提前致謝!
uj5u.com熱心網友回復:
將groupby agg與min/一起使用max:
out = df.groupby('stations')['Distance'].agg(['min', 'max']).reset_index()
輸出:
stations min max
0 9 0.429490 0.604525
1 20 0.710707 0.785087
2 28 7.116540 10.320423
或使用命名聚合:
(df.groupby('stations')
.agg(**{'Minimum Distance': ('Distance', 'min'),
'Maximum distance': ('Distance', 'max')})
.reset_index()
)
輸出:
stations Minimum Distance Maximum distance
0 9 0.429490 0.604525
1 20 0.710707 0.785087
2 28 7.116540 10.320423
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/434723.html
