如何用 Python 删除 CSV 文件中的一行?


在本教程中,我们将学习如何使用 Python 删除 CSV 文件中的一行。我们将使用 Pandas 库。Pandas 是一个用于数据分析的开源库;它是用于调查数据和见解的最流行的 Python 库之一。它包含执行数据集操作的多个功能。它可以与 NumPy 等其他库结合使用,以对数据执行特定函数。

我们将使用 `drop()` 方法从任何 CSV 文件中删除行。在本教程中,我们将演示三个使用相同方法从 CSV 文件中删除行的示例。在本教程结束时,您将熟悉该概念并能够从任何 CSV 文件中删除行。

语法

这是从数组中删除多行的语法。

#drop method
data = pd.read_csv("my file")
data = data.drop(data.index[index_number])
print(data)

在此语法中,我们首先读取数据帧;然后我们使用方法传递索引并删除它们。最后,我们打印更新后的数据。

示例 1:从 CSV 文件中删除最后一行

这是一个示例,我们使用 `drop` 方法删除了最后一行。首先,我们使用 `read_csv()` 将 CSV 文件读取为数据帧,然后使用 `drop()` 方法删除索引为 -1 的行。然后,我们使用 `index` 参数指定要删除的索引。最后,我们使用 `to_csv()` 将更新后的数据帧写回 CSV 文件,并将 `index=False` 设置为避免将行索引写入文件。

import pandas as pd
df = pd.read_csv('How_to_delete_only_one_row_in_CSV_with_Python.csv')
df = df.drop(df.index[-1])
df.to_csv('How_to_delete_only_one_row_in_CSV_with_Python.csv', index=False)

输出

运行代码前的 CSV 文件

运行代码后的 CSV 文件:

示例 2:按标签删除一行

此示例与上面的示例类似;在此示例中,我们删除了标签为“row”的行。在此示例中,我们使用 `read_csv()` 读取 CSV 文件,但这次我们使用 `index_col` 参数将“id”列设置为索引。然后,我们使用 `drop()` 方法删除索引标签为“row”的行。然后,我们使用 `index` 参数指定要删除的标签。最后,我们使用 `to_csv()` 将更新后的数据帧写回 CSV 文件,不设置 `index=False`,因为行标签现在是 CSV 文件的一部分。

import pandas as pd
df = pd.read_csv('How_to_delete_only_one_row_in_CSV_with_Python.csv', index_col='id')
df = df.drop('row1')
df.to_csv('How_to_delete_only_one_row_in_CSV_with_Python.csv', index=True)

输出

运行代码前的 CSV 文件:

运行代码后的 CSV 文件:

示例 3:根据条件删除一行

在此示例中,首先,我们读取 CSV 文件,然后使用 `drop()` 方法删除“Name”列的值等于“John”的行。我们首先使用布尔索引选择满足条件的行来实现此目的。最后,我们使用 `to_csv()` 将更新后的数据帧写回 CSV 文件,再次设置 `index=False`。

import pandas as pd
df = pd.read_csv('example_3.csv')
df = df.drop(df[df.Name == 'Ankita'].index)
df.to_csv('example_3.csv', index=False)

输出

运行代码前的 CSV 文件:

运行代码后的 CSV 文件:

结论

我们了解到,pandas 是一个功能强大且灵活的 Python 库,用于数据操作和分析。它提供高性能的数据结构。我们演示了 `drop` 方法来从 csv 文件中删除行。根据需要,我们可以按索引、标签或条件指定要删除的行。此方法允许从 csv 文件中删除一行或多行。

更新于:2023年5月12日

19K+ 次查看

启动你的职业生涯

通过完成课程获得认证

开始学习
广告