簡體   English   中英

通過對另一列的某些操作根據組對 Pandas 數據框進行排序

[英]Sort a Pandas Data Frame based on group by some operation on another column

我有一個列線

分數

鄉村擊球手跑印度 Sachin 15000
印度維拉 12000
澳大利亞史密斯 10000 澳大利亞華納 8000 澳大利亞瑞奇 11000 新西蘭威廉姆森 8000 英格蘭巴特勒 5000 英格蘭斯托克斯 9000 ....

....

我想找到總成績排名前 3 位的國家。 我的輸出應該是

澳大利亞 29000 印度 27000 英格蘭 14000 新西蘭 8000

我無法找到一個確切的表達方式。

我試過這個 Score.groupby('Country')['Runs'].sum()

這給了我一個系列的整個輸出,但不是按升序排列的,因為它將 Country 和 Runs 放在一起作為一個列。

根據所有擊球手的總得分對國家進行排序的最佳方法是什么? 我看到了對一列進行分組和對另一列進行排序的方法,但在這里我希望它對運行列上的某些操作進行排序(總和在這里)

測試數據:

df = pd.DataFrame(
    {
        "Country": [
            "India",
            "India",
            "Australia",
            "Australia",
            "Australia",
            "New Zealand",
        ],
        "Batsman": ["Sachin", "Virat", "Smith", "warner", "Ricky", "Wiliamson"],
        "Run": [15000, 12000, 10000, 8000, 1100, 8000],
    }
)

Pandas groupby 排序:

df.groupby("Country").sum().sort_values("Run", ascending=False)

輸出:

               Run
Country           
India        27000
Australia    19100
New Zealand   8000

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM