Python 中过滤 Pandas 数据框的多种方法总结

需积分: 5 0 下载量 41 浏览量 更新于2024-08-03 收藏 22KB DOCX 举报
PYTHON:过滤 PANDAS DATAFRAME 的 10 种方法 在 Python 中,过滤 pandas 数据框是非常常见的数据操作之一。它类似于 SQL 中的 WHERE 子句,或者您必须在 MSExcel 中使用过滤器来根据某些条件选择特定的行。在速度方面,Python 有一种高效的方式来执行过滤和聚合。它有一个名为 pandas 的优秀包,用于数据整理任务。Pandas 建立在用 C 语言编写的 NumPy 包之上,这是一种低级语言。因此,使用包进行数据操作是处理大型数据集的快速而智能的方法。 数据过滤是预测建模或任何报告项目的数据准备的最初始步骤之一。它也被称为“子集数据”。在下面,我们将介绍在 Python 中过滤 pandas 数据框的 10 种方法。 方法一:使用 DataFrame 方式 选择 JetBlue Airways 的航班详情,该航班有 2 个字母的承运人代码 B6,来自 JFK 机场。 `newdf = df[(df.origin=="JFK")&(df.carrier=="B6")]` 方法二:使用布尔索引 选择所有从 JFK 机场出发的航班,并且承运人代码为 B6。 `newdf = df[(df.origin=="JFK")&(df.carrier=="B6")]` 方法三:使用 query 方法 选择所有从 JFK 机场出发的航班,并且承运人代码为 B6。 `newdf = df.query('origin=="JFK" and carrier=="B6"')` 方法四:使用 loc 方法 选择所有从 JFK 机场出发的航班,并且承运人代码为 B6。 `newdf = df.loc[(df.origin=="JFK")&(df.carrier=="B6")]` 方法五:使用 iloc 方法 选择所有从 JFK 机场出发的航班,并且承运人代码为 B6。 `newdf = df.iloc[(df.origin=="JFK")&(df.carrier=="B6")]` 方法六:使用 apply 方法 选择所有从 JFK 机场出发的航班,并且承运人代码为 B6。 `newdf = df.apply(lambda x: x[(x.origin=="JFK")&(x.carrier=="B6")], axis=1)` 方法七:使用 groupby 方法 选择所有从 JFK 机场出发的航班,并且承运人代码为 B6。 `newdf = df.groupby(['origin', 'carrier']).get_group(('JFK', 'B6'))` 方法八:使用 pivot_table 方法 选择所有从 JFK 机场出发的航班,并且承运人代码为 B6。 `newdf = df.pivot_table(index='origin', columns='carrier', values='flight')` 方法九:使用 melt 方法 选择所有从 JFK 机场出发的航班,并且承运人代码为 B6。 `newdf = pd.melt(df, id_vars=['origin', 'carrier'], value_vars=['flight'])` 方法十:使用 merge 方法 选择所有从 JFK 机场出发的航班,并且承运人代码为 B6。 `newdf = pd.merge(df, df[['origin', 'carrier']], on=['origin', 'carrier'])` 在上述方法中,我们可以看到,pandas 提供了多种方式来过滤数据框,从而满足不同的需求和场景。