熊猫,使用一系列选择数据框的子集

时间:2020-01-10 15:22:53

标签: pandas

我有一个熊猫df。

+----------+------------+-------------+-----+--+
|   City   | First_name | Last_name   | Age |  |
+----------+------------+-------------+-----+--+
| London   | Han        | Solo        |  34 |  |
| Paris    | Luke       | Skywalker   |  30 |  |
| New York | Leia       | Organa      |  30 |  |
| LA       | Lando      | calrissian  |  40 |  |
+----------+------------+-------------+-----+--+

和使用.loc [:,'Age']

从另一个较小的df(df2)中获得的(熊猫)系列

+------------+
|    Age     |
+------------+
|    30      |
|    30      |
+------------+

我想使用系列信息选择df1中的所有行。给这样的东西,

+----------+------------+-------------+-----+--+
|   City   | First_name | Last_name   | Age |  |
+----------+------------+-------------+-----+--+
| Paris    | Luke       | Skywalker   |  30 |  |
| New York | Leia       | Organa      |  30 |  |
+----------+------------+-------------+-----+--+

我看过有关.loc和.iloc的文献,但这似乎不是我所追求的。我试图编写一个小的for循环,但是经验有限(我是编程新手)。有人有什么建议吗?

2 个答案:

答案 0 :(得分:1)

假设较大的df为df1,较小的df为df2,请提取您要选择的age值:

mask = df2['Age'].unique()

然后只需通过此df1查询mask

df1.loc[df1['Age'].isin(mask)]

答案 1 :(得分:0)

尝试直接比较数据框:

df[df['Age'] == df2['Age']]