为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕的地6264312 2022-10-18 17:46:13
我必须根据字典对 Dataframe 的列的值/行进行排序,该字典包含数据框的每个值及其行索引,但排序方式不同。howToSortDict = {'Brazil': 2, 'Russia': 0, 'China': 1} # row value and its indexmyDict = {    "countries": ["Brazil", "Russia", "China"],    "amount": [1000, 2000, 3000]}df = pd.DataFrame(myDict)它们是如何排序的:     countries  amount0    Brazil     10001    Russia     20002    China      3000我需要如何对它们进行排序(作为数据框):    countries   amount0   Russia      20001   China       30002   Brazil      1000关于如何在不遍历每一行的情况下实现这一点的任何想法?
查看完整描述

2 回答

?
胡子哥哥

TA贡献1825条经验 获得超6个赞

利用argsort


df=df.iloc[df.countries.map(howToSortDict).argsort()]

  countries  amount

1    Russia    2000

2     China    3000

0    Brazil    1000


查看完整回答
反对 回复 2022-10-18
?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

分两步:


首先使用map与国家关联的值创建一个新列


df['country_value'] = df.countries.map(howToSortDict)

然后sort和drop新列


df.sort_values('country_value').drop('country_value',axis=1)


#    countries   amount

#1   Russia      2000

#2   China       3000

#0   Brazil      1000



查看完整回答
反对 回复 2022-10-18
  • 2 回答
  • 0 关注
  • 109 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信