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

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

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

问题

考虑到你的第一个数据框如下所示:

区域id   商店id   名称

1         100      苹果
1         101      苹果
2         102      香蕉
2         103      香蕉
2         104      杰克
3         105      橙子
3         106      橙子
4         107      猕猴桃
4         108      猕猴桃
4         109      樱桃
4         110      葡萄
4         111      葡萄

我的第二个数据框如下所示:

商店id   价格    收入

100      140      2000
101      150      3000
101      150      3500
102      130      2200
102      130      3300
102      130      3500
102      130      2700
103      135      3100
103      130      3300

我需要得到以下新的数据框,根据第一个数据框中的商店id填充商店名称:

商店id     名称        价格    收入
    
100    苹果      140      2000
101    苹果      150      3000
101    苹果      150      3500
102    香蕉     130      2200
102    香蕉     130      3300
102    香蕉     130      3500
102    香蕉     130      2700
103    香蕉     135      3100
103    香蕉     130      3300
英文:

Consider my first dataframe as below

Area id   shop id  Name

1         100      Apple
1         101      Apple
2         102      Banana
2         103      Banana
2         104      Jack
3         105      Orange
3         106      Orange
4         107      Kiwi
4         108      Kiwi
4         109      Cherry
4         110      Grape
4         111      Grape

My second dataframe as below

 shop id   Price    revenue
   

   100      140      2000
   101      150      3000
   101      150      3500
   102      130      2200
   102      130      3300
   102      130      3500
   102      130      2700
   103      135      3100
   103      130      3300

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

shop id     Name        Price    revenue
       
    
       100    Apple      140      2000
       101    Apple      150      3000
       101    Apple      150      3500
       102    Banana     130      2200
       102    Banana     130      3300
       102    Banana     130      3500
       102    Banana     130      2700
       103    Banana     135      3100
       103    Banana     130      3300

答案1

得分: 0

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

# 创建数据框
data1 = { ... }
df1 = pd.DataFrame(data1)
data2 = { ... }
df2 = pd.DataFrame(data2)

# 根据'shop id'合并数据框
result_df = pd.merge(df2, df1[['shop id', 'Name']], on='shop id')
result_df = result_df[['shop id', 'Name', 'Price', 'revenue']]
print(result_df)
英文:

Using pd.merge to get your result.

# Create dataframe
data1 = { ... }
df1 = pd.DataFrame(data1)
data2 = { ... }
df2 = pd.DataFrame(data2)

# Merge the dfs based on 'shop id'
result_df = pd.merge(df2, df1[['shop id', 'Name']], on='shop id')
result_df = result_df[['shop id', 'Name', 'Price', 'revenue']]
print(result_df)

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

发表评论

匿名网友

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

确定