如何基于 Pandas DataFrame 中的列值删除行
我们将介绍通过使用 .drop
(带有和不带有 loc
)和布尔掩码
检查列值的条件来基于 DataFrame
删除行的方法。
用 .drop
方法删除 Pandas DataFrame
中列值的行
.drop
方法接受一个或一列列名,并删除行或列。对于行,我们设置参数 axis=0
,对于列,我们设置参数 axis=1
(默认情况下,axis
为 0
)。我们还可以得到 True
和 False
系列列值,根据应用于 Pandas DataFrame
中的条件。
示例代码:
# python 3.x
import pandas as pd
fruit_list = [
("Orange", 34, "Yes"),
("Mango", 24, "No"),
("banana", 14, "No"),
("Apple", 44, "Yes"),
("Pineapple", 64, "No"),
("Kiwi", 84, "Yes"),
]
# Create a DataFrame object
df = pd.DataFrame(fruit_list, columns=["Name", "Price", "Stock"])
# Get names of indexes for which column Stock has value No
indexNames = df[df["Stock"] == "No"].index
# Delete these row indexes from dataFrame
df.drop(indexNames, inplace=True)
print(df)
输出:
Name Price Stock
0 Orange 34 Yes
3 Apple 44 Yes
5 Kiwi 84 Yes
我们也可以通过在 df.drop
方法中使用 .loc
来获得类似的结果。
df.drop(df.loc[df["Stock"] == "Yes"].index, inplace=True)
我们还可以基于多个列值删除行。在上面的示例中,我们可以删除价格 >=30
和价格 <=70
的行。
示例代码:
# python 3.x
import pandas as pd
# List of Tuples
fruit_list = [
("Orange", 34, "Yes"),
("Mango", 24, "No"),
("banana", 14, "No"),
("Apple", 44, "Yes"),
("Pineapple", 64, "No"),
("Kiwi", 84, "Yes"),
]
# Create a DataFrame object
df = pd.DataFrame(fruit_list, columns=["Name", "Price", "Stock"])
indexNames = df[(df["Price"] >= 30) & (df["Price"] <= 70)].index
df.drop(indexNames, inplace=True)
print(df)
输出:
Name Price Stock
1 Mango 24 No
2 banana 14 No
5 Kiwi 84 Yes
价格大于 30 且小于 70 的行已被删除。
布尔屏蔽方法删除 Pandas DataFrame 中的行
布尔屏蔽 boolean masking
是基于列值删除 Pandas DataFrame
中的行的最好,最简单的方法。
示例代码:
# python 3.x
import pandas as pd
# List of Tuples
fruit_list = [
("Orange", 34, "Yes"),
("Mango", 24, "No"),
("banana", 14, "No"),
("Apple", 44, "Yes"),
("Pineapple", 64, "No"),
("Kiwi", 84, "Yes"),
]
# Create a DataFrame object
df = pd.DataFrame(fruit_list, columns=["Name", "Price", "Stock"])
print(df[df.Price > 40])
print("............................")
print(df[(df.Price > 40) & (df.Stock == "Yes")])
输出:
Name Price Stock
3 Apple 44 Yes
4 Pineapple 64 No
5 Kiwi 84 Yes
............................
Name Price Stock
3 Apple 44 Yes
5 Kiwi 84 Yes
相关文章
将 Pandas DataFrame 转换为 Spark DataFrame
发布时间:2024/04/20 浏览次数:169 分类:Python
-
本教程将讨论将 Pandas DataFrame 转换为 Spark DataFrame 的不同方法。
将 Pandas DataFrame 导出到 Excel 文件
发布时间:2024/04/20 浏览次数:164 分类:Python
-
本教程介绍了有关如何将 Pandas DataFrame 导出到 excel 文件的各种方法
将 Lambda 函数应用于 Pandas DataFrame
发布时间:2024/04/20 浏览次数:113 分类:Python
-
本指南说明如何使用 DataFrame.assign() 和 DataFrame.apply() 方法将 Lambda 函数应用于 pandas DataFrame。
计算 Pandas 中两个 DataFrame 之间的交叉连接
发布时间:2024/04/20 浏览次数:114 分类:Python
-
本教程解释了如何在 Pandas 中计算两个 DataFrame 之间的交叉连接。
计算 Pandas DataFrame 列的数量
发布时间:2024/04/20 浏览次数:113 分类:Python
-
本教程解释了如何使用各种方法计算 Pandas DataFrame 的列数,例如使用 shape 属性、列属性、使用类型转换和使用 info() 方法。
更改 Pandas DataFrame 列的顺序
发布时间:2024/04/20 浏览次数:116 分类:Python
-
在这篇文章中,我们将介绍如何使用 python pandas DataFrame 来更改列的顺序。在 pandas 中,使用 Python 中的 reindex() 方法重新排序或重新排列列。
从 Pandas DataFrame 系列中获取列表
发布时间:2024/04/20 浏览次数:136 分类:Python
-
本文将讨论如何使用 tolist 方法从 Pandas DataFrame 系列中获取列表,并探索 Pandas DataFrame 结构。