Pandas - 如何使用带索引的字典对列的行进行排序

Jul*_* S. 3 python numpy dataframe pandas

我必须根据字典对数据帧的列的值/行进行排序,字典包含数据帧的每个值及其行索引,但排序不同。

howToSortDict = {'Brazil': 2, 'Russia': 0, 'China': 1} # row value and its index

myDict = {
    "countries": ["Brazil", "Russia", "China"],
    "amount": [1000, 2000, 3000]
}

df = pd.DataFrame(myDict)
Run Code Online (Sandbox Code Playgroud)

它们的排序方式:

     countries  amount
0    Brazil     1000
1    Russia     2000
2    China      3000
Run Code Online (Sandbox Code Playgroud)

我需要如何对它们进行排序(作为数据框):

    countries   amount
0   Russia      2000
1   China       3000
2   Brazil      1000
Run Code Online (Sandbox Code Playgroud)

关于如何在不循环每一行的情况下实现这一点的任何想法?

WeN*_*Ben 6

使用argsort

df=df.iloc[df.countries.map(howToSortDict).argsort()]
  countries  amount
1    Russia    2000
2     China    3000
0    Brazil    1000
Run Code Online (Sandbox Code Playgroud)