Vlookup Excel与Pandas之和

2024-10-04 05:31:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个数据帧,如:

df1: 
         domain      male        female
0   bukalapak.com   -0.193041   -0.445085
1   blogspot.com    -0.702501   -0.096032
2   kaskus.co.id    -0.176091   -0.477121
3   grid.id         -0.566853   -0.137339
4   idntimes.com    -0.491565   -0.169046`

df2:
    NAME        DOMAIN1             DOMAIN2
0   DINA  bukalapak.com      myvisualiq.net
1   DILA   blogspot.com        utorrent.com
2   DONI   kaskus.co.id      lotusflare.com

我只想让变量名为lmp,值为sumvlookup。域1或域2是指男性列df1或excel中的数据,如:

VLOOKUP(B2;Sheet1'!$A$2:$C$646;2;0)+VLOOKUP(C2;Sheet1'!$A$2:$C$646;2;0)

其中B2是bukalapak.com,而Sheet1'!$A$2:$C$646是df1

结果是这样的:

    NAMA        DOMAIN1             DOMAIN2   lmp
0   DINA        grid.id       bukalapak.com   -0.759894
1   DILA   blogspot.com        idntimes.com   -1.194066
2   DONI   kaskus.co.id             grid.id   -0.742944

我想用python运行这个计算。我读过python中的vlookup脚本,但没有类似的例子。谢谢你


Tags: 数据comidgriddf1sheet1coblogspot
1条回答
网友
1楼 · 发布于 2024-10-04 05:31:33

使用pandas.Series.map

m = df1.set_index('domain')['male']
df2['lmp'] = df2['DOMAIN1'].map(m) + df2['DOMAIN2'].map(m)
print(df2)

输出:

   NAME       DOMAIN1        DOMAIN2       lmp
0  DINA       grid.id  bukalapak.com -0.759894
1  DILA  blogspot.com   idntimes.com -1.194066
2  DONI  kaskus.co.id        grid.id -0.742944

相关问题 更多 >