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

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

比較 Pandas 中的行

比較 Pandas 中的行

瀟湘沐 2023-04-18 16:19:24
我有一個看起來像這樣的熊貓數據框:df = pd.DataFrame( [ ['A','one',7], ['A','two',8], ['B','one',9], ['B','two',6]], columns=['ID', 'Type', 'Price'])    ID  Type    Price0   A   one     71   A   two     82   B   one     93   B   two     6我想添加一個列,該列是比較每個 ID 中的“價格”的結果。所以結果看起來像這樣:    ID  Type    Price   Level0   A   one        7    low1   A   two        8    high2   B   one        9    high3   B   two        6    low我正在尋找一種有效的方法來做到這一點。謝謝!
查看完整描述

2 回答

?
料青山看我應如是

TA貢獻1772條經驗 獲得超8個贊

我們可以嘗試groupby+ rank,然后map


df['Level']=df.groupby('ID').Price.rank().map({1:'low',2:'high'})

df

Out[221]: 

  ID Type  Price Level

0  A  one      7   low

1  A  two      8  high

2  B  one      9  high

3  B  two      6   low


查看完整回答
反對 回復 2023-04-18
?
慕萊塢森

TA貢獻1810條經驗 獲得超4個贊

讓我們試試duplicated:


df['Level'] = (df.sort_values('Price').duplicated(['ID'])

                 .map({True:'high', False:'low'})

              )

輸出:


  ID Type  Price Level

0  A  one      7   low

1  A  two      8  high

2  B  one      9  high

3  B  two      6   low


查看完整回答
反對 回復 2023-04-18
  • 2 回答
  • 0 關注
  • 194 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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