过滤行 – Python Pandas


Python Pandas 中,过滤行并获取任何特定列值可以通过多种方式完成,其中一种是使用 Pandas 的 contains() 方法。通常,此方法应用于字符串类型的列,根据子字符串过滤行(即通过验证列是否包含特定子字符串)。

步骤

在 Pandas 中过滤行的步骤如下所示

  • 读取 CSV 文件

  • 过滤行

  • 打印 DataFrame

读取 CSV 文件

在下面的代码行中,使用 pd.read_csv() 函数将数据从 CSV 文件加载到 DataFrame 中,DataFrame 是一个二维且大小可变的结构。

dataFrame = pd.read_csv("C:\Users\amit_\Desktop\CarRecords.csv")

过滤包含特定文本的行

下面的代码行过滤 DataFrame,仅包含“Car”列包含文本“Lamborghini”的行。函数 .str.contains('Lamborghini') 检查“Car”列中的每个值是否包含字符串“Lamborghini”,并返回布尔值(True 或 False)。

dataFrame = dataFrame[dataFrame['Car'].str.contains('Lamborghini')]

打印 DataFrame

将整个 DataFrame 打印到控制台。最初,它将打印未过滤的 DataFrame(过滤前),过滤后,它只打印“Car”列中包含文本“Lamborghini”的行。

print("DataFrame...\n", dataFrame)

示例

import pandas as pd # reading csv file dataFrame = pd.read_csv("C:\Users\amit_\Desktop\CarRecords.csv") print("DataFrame...\n", dataFrame) # select rows containing text "Lamborghini" dataFrame = dataFrame[dataFrame['Car'].str.contains('Lamborghini')] print("\nFetching rows with text Lamborghini ...\n", dataFrame)

输出

1. 原始 DataFrame

假设 CSV 文件“CarRecords.csv”包含以下数据。

汽车 型号 年份 价格
0 兰博基尼 Huracan 2020 240000
1 法拉利 F8 2021 280000
2 兰博基尼 Aventador 2019 400000
3 保时捷 911 2020 150000
4 兰博基尼 Urus 2021 200000
5 宝马 M3 2018 70000

2. 过滤“兰博基尼”后的 DataFrame

第二个输出仅显示“Car”列包含“兰博基尼”的行。

汽车 型号 年份 价格
0 兰博基尼 Huracan 2020 240000
2 兰博基尼 Aventador 2019 400000
4 兰博基尼 Urus 2021 200000

更新于:2024年9月23日

6K+ 次浏览

启动您的 职业生涯

完成课程获得认证

开始学习
广告