我對熊貓有點陌生,遇到了以下代碼行
df.groupby(by=['id']).agg(lambda x: list(x))
這df是
id var_x var_y
0 1 xe ye
1 1 xb yb
2 1 xc yc
3 2 xd yd
4 3 xe ye
5 1 xa ya
6 2 xf yf
它給出了(預期的)結果
var_x var_y
id
1 [xe, xb, xc, xa] [ye, yb, yc, ya]
2 [xd, xf] [yd, yf]
3 [xe] [ye]
問題是我們能否確保每個變數的聚合具有相同的順序?例如 with id=1,有沒有辦法解釋我們不會有[xe, xb, xc, xa]and[ya, ye, yc, yb]而不是[xe, xb, xc, xa]and [ye, yb, yc, ya]?
uj5u.com熱心網友回復:
簡短的回答
是的,訂單是有保證的。
檔案
的檔案groupby表明您可以對組進行排序,但無論如何都會保留行的順序。
sortbool,默認為 True
對組鍵進行排序。關閉此功能可獲得更好的性能。請注意,這不會影響每組內的觀察順序。 Groupby 保留每個組內的行順序。
細節
groupby.agg將整個系列傳遞給聚合函式,按組分組,然后對下一列相同。
您可以通過運行來檢查print:
df.groupby(by=['id']).agg(print)
0 xe
1 xb
2 xc
5 xa
Name: var_x, dtype: object
3 xd
6 xf
Name: var_x, dtype: object
4 xe
Name: var_x, dtype: object
0 ye
1 yb
2 yc
5 ya
Name: var_y, dtype: object
3 yd
6 yf
Name: var_y, dtype: object
4 ye
Name: var_y, dtype: object
串列中的順序
這相當于list(Series)為每個已處理的系列運行。list不修改傳遞的iterable的順序,所以順序保持不變。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/454552.html
