+-
从CSV文件中删除行

有什么方法可以在不重写整个CSV文件的情况下删除一行?

目前,我正在使用一个字典'db',其中包含了我想要删除的行的数据库,首先我读取了列,然后完全重写了CSV文件中除了我想要删除的ID的行之外的每一行,有什么方法可以做到这一点而不需要重写所有的东西吗?

 def remove_from_csv(file_name, id, db):
        with open(file_name, "r") as f:
            reader = csv.reader(f)
            i = next(reader)

        with open(file_name, 'w') as f:
            writer = csv.writer(f, lineterminator='\n')
            writer.writerow(i)
            for i in db:
                if id != i:
                    for j in db[i]:
                        writer.writerow([i, j, db[i][j]])
0
投票

在过去,我的一个方法是使用一个名为 pandas 数据框和 drop 基于行索引或标签的函数。

例如

import pandas as pd
df = pd.read_csv('yourFile.csv')
newDf = df.drop('rowLabel')

或根据索引位置。

newDf =df.drop(df.index[indexNumber])