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

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

Python pandas:如果 A 列值出現多次,則分配 B 列的第一個值

Python pandas:如果 A 列值出現多次,則分配 B 列的第一個值

長風秋雁 2023-04-18 17:19:22
我正在嘗試將B 列的值i動態替換為一致的值,條件是A 列中j的值計數。我正在嘗試使用字典來映射值,但它不起作用。color = ['black','mauve','teal','green','teal','black']code = ['E45', 'M46', 'Y76', 'G44', 'T76','B43']df = pd.DataFrame({'color': color, 'code': code})# Dedupe a copydf_copy = dfdf_copy = df_copy.drop_duplicates(subset='color', keep='first')# Create a dictionarydummy_dict = df_copy[['color','code']].to_dict('list')# {'color': ['black', 'mauve', 'teal', 'green', 'teal', 'black'], 'code': ['E45', 'M46', 'Y76', 'G44', 'T76', 'B43']}### Not workingdf["new_code"] = df.code.replace(dummy_dict)### Output (wrong):# color   code   new_code# black    E45   E45# mauve    M46   M46# teal     Y76   Y76# green    G44   G44# teal     T76   T76# black    B43   B43### Desired output:# color   code   new_code# black    E45   E45# mauve    M46   M46# teal     Y76   Y76# green    G44   G44# teal     T76   Y76# black    B43   E45我哪里錯了?就好像 Python 甚至沒有訪問我的字典來映射值。
查看完整描述

1 回答

?
慕少森

TA貢獻2019條經驗 獲得超9個贊

它是transform和first


df['new_code'] = df.groupby('color').code.transform('first')


Out[21]:

   color code new_code

0  black  E45      E45

1  mauve  M46      M46

2   teal  Y76      Y76

3  green  G44      G44

4   teal  T76      Y76

5  black  B43      E45


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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