Pandas 基于列值删除DataFrame行
在本文中,我们将介绍在Pandas中如何基于列值删除DataFrame行。删除行是Pandas操作中的一个基本任务,而根据列值删除行也是一个常见的问题。下面将详细介绍如何使用Pandas删除数据框(DataFrame)中的行。
阅读更多:Pandas 教程
创建DataFrame
首先,我们需要创建一个简单的数据框,以便执行删除操作。下面的代码创建了一个名为“df”的数据框,其中包含三列(A、B和C),每列有五行。
我们可以使用以下代码来查看数据框的内容。
输出为:
删除行
Pandas提供了许多方法来删除DataFrame中的行,但在本文中,我们将重点介绍基于列值删除行的方法,即使用条件语句过滤数据框(DataFrame)。
假设我们要删除列“A”中包含值“3”的所有行。我们可以使用以下代码过滤数据框并创建一个新的数据框(df_filtered),其中仅包含所有不包含“3”的行的数据。
此代码执行以下操作:
- 使用条件语句
df["A"] != 3
过滤数据框(DataFrame),以仅保留df
中所有行A
中的值不等于3
的行(即包括了行0,1,3,4)。 - 将过滤后的数据框保存到名为“df_filtered”的变量中。
我们可以使用以下代码查看新的过滤数据框(DataFrame):
输出为:
我们可以看到,所有包含值“3”的行都已从数据框中删除。
多条件删除
我们可以使用多个条件语句来删除DataFrame中的行。例如,假设我们希望删除列“A”和“C”中包含值“2”和“14”的所有行。我们可以使用以下代码创建一个新的过滤数据框(DataFrame)(df_filtered2):
此代码执行以下操作:
- 使用条件语句
df["A"] != 2
过滤数据框(DataFrame),以仅保留df
中所有A
中的值不等于2
的行。 - 使用条件语句
df["C"] != 14
过滤数据框(DataFrame),以仅保留df
中所有C
中的值不等于14
的行。 - 将过滤后的数据框保存到名为“df_filtered2”的变量中。
我们可以使用以下代码查看新的过滤数据框(DataFrame):
输出为:
我们可以看到,所有包含值“2”和“14”的行都已经从数据框中删除。
使用drop()方法删除行
除了使用条件语句过滤数据框(DataFrame)外,还可以使用drop()
方法删除行。
例如,假设我们要删除与列“A”中的值“2”对应的行。我们可以使用以下代码:
此代码执行以下操作:
- 找出DataFrame中所有包含值“2”的行,即
df[df['A']==2]
。 - 使用
drop()
方法删除这些行,即df = df.drop(df[df['A']==2].index)
。
我们可以使用以下代码查看新的数据框(DataFrame):
输出为:
我们可以看到,在数据框中不再包含与列“A”中值为“2”的行。
总结
在Pandas中,根据列值删除数据框(DataFrame)行是一个常见的任务,可以使用条件语句或drop()
方法来实现。对于条件语句,我们可以使用!=
、>
、<
和|
等运算符。对于drop()
方法,我们需要找出包含特定值的行,然后使用drop()
方法将它们删除。通过使用这些方法,可以轻松地删除数据框中不需要的行。