![](/img/trans.png)
[英]Create new column based on two columns (different length) from different data frames
[英]How to create new df based on columns of two different data frames?
我正在研究以下数据帧,尽管原始数据帧非常大,有数千行,但出于说明目的,我使用了许多基本的df。
我的第一个df是:
ID value
0 3 7387
1 8 4784
2 11 675
3 21 900
还有另一个巨大的df,例如df2
x y final_id
0 -7.35 2.09 3
1 -6.00 2.76 3
2 -5.89 1.90 4
3 -4.56 2.67 5
4 -3.46 1.34 8
5 -4.67 1.23 8
6 -1.99 3.44 8
7 -5.67 2.40 11
8 -7.56 1.66 11
9 -9.00 3.12 21
10 -8.01 3.11 21
11 -7.90 3.19 22
现在,从第一个df开始,我只考虑“ ID”列,并将其值与第二个数据帧(df2)中的“ final_id”列匹配。
我想创建另一个仅包含df2过滤行的df,即仅包含“ final_id”为3、8、11、21的行(根据df1的“ ID”列)。
下面将是结果df:
x y final_id
0 -7.35 2.09 3
1 -6.00 2.76 3
2 -3.46 1.34 8
3 -4.67 1.23 8
4 -1.99 3.44 8
5 -5.67 2.40 11
6 -7.56 1.66 11
7 -9.00 3.12 21
8 -8.01 3.11 21
我们可以看到df2中的第2、3、11行已从结果df中删除。
请帮忙。
您可以使用isin
创建掩码,然后使用布尔掩码将df2
子集化:
mask = df2["final_id"].isin(df["ID"])
print(df2[mask])
x y final_id
0 -7.35 2.09 3
1 -6.00 2.76 3
4 -3.46 1.34 8
5 -4.67 1.23 8
6 -1.99 3.44 8
7 -5.67 2.40 11
8 -7.56 1.66 11
9 -9.00 3.12 21
10 -8.01 3.11 21
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.