![](/img/trans.png)
[英]How to fill empty column values with another dataframe's value if two other columns have matching values in Pandas?
[英]How to map values in a column to two other column of another dataframe and extract matching values on both columns?
我有兩個數據框
df1
NAME
AB2
AB3
AB45
AB5
AB6
AB776
AB845
AB9
AB10
df2
G1 G2 Value
AB2 AB3 5
AB3 AB2 5
AB2 AB2 4
CXY AB3 0
AB3 GTZ 8
AB5 AB6 4
AB9 NUT3 6
CVC FGT 5
MKH CTY 8
LMN VUT 9
AB776 AB776 1
AB845 AB776 8
我想將df1['NAME']
值映射到df2['G1']
和df2['G2']
並提取與這些值匹配的列。
我試過如下:
df = df2[df2['G1'].isin(df1['NAME']) | df2['G2'].isin(df1['NAME'])]
但它也提取與單列匹配的所有值。 如果它映射到兩列,我想返回
預期輸出為:
G1 G2 Value
AB2 AB3 5
AB3 AB2 5
AB2 AB2 4
AB5 AB6 4
AB776 AB776 1
AB845 AB776 8
你在尋找&
條件而不是|
:
df2[df2['G1'].isin(df1['NAME']) & df2['G2'].isin(df1['NAME'])]
輸出:
G1 G2 Value
0 AB2 AB3 5
1 AB3 AB2 5
2 AB2 AB2 4
5 AB5 AB6 4
10 AB776 AB776 1
11 AB845 AB776 8
我認為你需要&
:
In [1242]: df2[df2['G1'].isin(df1['NAME']) & df2['G2'].isin(df1['NAME'])]
Out[1242]:
G1 G2 Value
0 AB2 AB3 5
1 AB3 AB2 5
2 AB2 AB2 4
5 AB5 AB6 4
10 AB776 AB776 1
11 AB845 AB776 8
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.