首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >python或pandas中的嵌套vlookup

python或pandas中的嵌套vlookup
EN

Stack Overflow用户
提问于 2018-07-22 02:31:07
回答 1查看 151关注 0票数 1

我有两个数据帧,records_df和price_df,它们的索引是相同的

price_df:

代码语言:javascript
复制
index    product   price/product
 s1        a        34 
 s1        b        34 
 s1        c        23
 s2        a        12
 s2        b        14
 s2        c        65
 s3        a        33
 s3        b        65
 s3        c        54

records_df:

代码语言:javascript
复制
index    Name   Number  Product     Sum of Amount of Products Day
  s1      x      1234     a               50
  s1      x      1234     a               50
  s1      x      1234     a               50
  s1      x      1234     a               50
  s1      x      1234     a               50
  s2      y      4321     b               30
  s3      z      3219     c               40
  s3      z      3219     d               40

我想要做的是将每个产品的价格插入到每天产品数量的总和之后,并将两个数据框合并在一起,结果将是:

代码语言:javascript
复制
index    Name   Number  Product     Sum of Amount of Products Day     Price/product

  s1      x      1234     a               50                              34
  s1      x      1234     a               50                              34 
  s1      x      1234     a               50                              34
  s1      x      1234     a               50                              34
  s2      y      4321     b               30                              34
  s3      z      3219     c               40                              14
  s3      z      3219     b               40                              65

我尝试过合并和连接,但不起作用。基本上,我尝试的是先对索引执行vlookup,然后对产品执行另一次vlookup。如何在python中创建嵌套的vlookup?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-22 02:40:55

IIUC,您可以只使用具有相同索引的loc

代码语言:javascript
复制
df2 = df2.set_index(['index', 'Product'])
df = df.set_index(['index', 'product'])

然后

代码语言:javascript
复制
df2.loc[:, 'price/product'] = df['price/product']

                Name    Number  Sum_of_Amount_of_Products_Day   price/product
index   Product             
s1      a       x       1234    50                              34.0
        a       x       1234    50                              34.0
        a       x       1234    50                              34.0
        a       x       1234    50                              34.0
        a       x       1234    50                              34.0
s2      b       y       4321    30                              14.0
s3      c       z       3219    40                              54.0
        d       z       3219    40                              NaN
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51458991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档