如何根据其他列的值填充Python数据框的列值?

huangapple go评论154阅读模式
英文:

How to fill the python dataframe column value based on other column value?

问题

请看下面的第一个数据框:

  1. 区域id 店铺id 名称
  2. 1 100 苹果
  3. 1 101 苹果
  4. 2 102 香蕉
  5. 2 103 香蕉
  6. 2 104 杰克
  7. 3 105 橙子
  8. 3 106 橙子
  9. 4 107 猕猴桃
  10. 4 108 猕猴桃
  11. 4 109 樱桃
  12. 4 110 葡萄
  13. 4 111 葡萄

第二个数据框如下:

  1. 店铺id 价格 收入
  2. 100 140 2000
  3. 101 150 3000
  4. 101 150 3500
  5. 102 130 2200
  6. 102 130 3300
  7. 102 130 3500
  8. 102 130 2700
  9. 103 135 3100
  10. 103 130 3300

我需要一个新的数据框,如下所示,根据第一个数据框中的店铺id来填充店铺名称:

  1. 店铺id 名称 价格 收入
  2. 100 苹果 140 2000
  3. 101 苹果 150 3000
  4. 101 苹果 150 3500
  5. 102 香蕉 130 2200
  6. 102 香蕉 130 3300
  7. 102 香蕉 130 3500
  8. 102 香蕉 130 2700
  9. 103 香蕉 135 3100
  10. 103 香蕉 130 3300
英文:

Consider my first dataframe as below

  1. Area id shop id Name
  2. 1 100 Apple
  3. 1 101 Apple
  4. 2 102 Banana
  5. 2 103 Banana
  6. 2 104 Jack
  7. 3 105 Orange
  8. 3 106 Orange
  9. 4 107 Kiwi
  10. 4 108 Kiwi
  11. 4 109 Cherry
  12. 4 110 Grape
  13. 4 111 Grape

My second dataframe as below

  1. shop id Price revenue
  2. 100 140 2000
  3. 101 150 3000
  4. 101 150 3500
  5. 102 130 2200
  6. 102 130 3300
  7. 102 130 3500
  8. 102 130 2700
  9. 103 135 3100
  10. 103 130 3300

I need new dataframe as below to fill the shop name based on shop id in the first data frame

  1. shop id Name Price revenue
  2. 100 Apple 140 2000
  3. 101 Apple 150 3000
  4. 101 Apple 150 3500
  5. 102 Banana 130 2200
  6. 102 Banana 130 3300
  7. 102 Banana 130 3500
  8. 102 Banana 130 2700
  9. 103 Banana 135 3100
  10. 103 Banana 130 3300

答案1

得分: 0

使用pd.merge来获取你的结果。

  1. # 创建数据框
  2. data1 = { ... }
  3. df1 = pd.DataFrame(data1)
  4. data2 = { ... }
  5. df2 = pd.DataFrame(data2)
  6. # 基于 'shop id' 合并数据框
  7. result_df = pd.merge(df2, df1[['shop id', 'Name']], on='shop id')
  8. result_df = result_df[['shop id', 'Name', 'Price', 'revenue']]
  9. print(result_df)
英文:

Using pd.merge to get your result.

  1. # Create dataframe
  2. data1 = { ... }
  3. df1 = pd.DataFrame(data1)
  4. data2 = { ... }
  5. df2 = pd.DataFrame(data2)
  6. # Merge the dfs based on 'shop id'
  7. result_df = pd.merge(df2, df1[['shop id', 'Name']], on='shop id')
  8. result_df = result_df[['shop id', 'Name', 'Price', 'revenue']]
  9. print(result_df)

huangapple
  • 本文由 发表于 2023年8月9日 11:25:30
  • 转载请务必保留本文链接:https://go.coder-hub.com/76864364-2.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定