首页 > 解决方案 > 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 循环,但经验有限(我是编程新手)。有人有建议吗?

标签: pandas

解决方案


假设 df 较大,df1而 df 较小df2,提取要选择的年龄值:

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

然后简单地df1通过这个查询mask

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


推荐阅读