亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 129 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號