过滤行 – 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 |
广告