如何根据列表对数据框重新排序?熊猫

Boo*_*aka 2 python list reorderlist dataframe pandas

我有一个 df,我想根据使用 Python 所示的列表对其进行重新排序:

df=pd.DataFrame({'Country':["AU","DE","UR","US","GB","SG","KR","JP","CN"],'Stage #': [3,2,6,6,3,2,5,1,1],'Amount':[4530,7668,5975,3568,2349,6776,3046,1111,4852]})
Run Code Online (Sandbox Code Playgroud)

df

list=["US","CN","GB","AU","JP","KR","UR","DE","SG"]
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?有什么想法吗?谢谢!

raf*_*elc 6

使用pd.Categorical

list_ = ["US","CN","GB","AU","JP","KR","UR","DE","SG"]

df['Country'] = pd.Categorical(df.Country, categories = list_, ordered = True)
df.sort_values(by='Country')
Run Code Online (Sandbox Code Playgroud)

另外,不要命名变量,list因为这会覆盖内置list命令