删除Pandas数据框中的一行会向数据框中添加一列

pnwntuvh  于 2023-01-15  发布在  其他
关注(0)|答案(1)|浏览(115)

我想删除基于csv生成的 Dataframe 中的一行,删除该行后,文件应该再次保存。但我遇到了一个问题,每次我删除一行,都会添加一个名为“Unknown 0.x”的列,我不知道为什么。下面是我的删除函数:

def delete_row(path, file_type, row):
    if file_type == 'csv':
        df = pd.read_csv(path)
        df.drop(row, inplace=True)
        df.to_csv(path)

我尝试了不同的方法来删除一行,甚至先将其转换为其他文件类型。当我尝试使用.json或.txt时,删除工作正常。只有使用.csv时,我才有这个问题

7cwmlq89

7cwmlq891#

这是因为每次使用df.to_csv()时,索引都会被保存为一个新列,需要设置index=False来解决这个问题,因此函数将变为:

def delete_row(path, file_type, row):
    if file_type == 'csv':
        df = pd.read_csv(path)
        df.drop(row, inplace=True)
        df.to_csv(path, index=False) # --> You need to set index to false here

与此相关的是,如果要将csv文件中的索引列设置为索引,请在阅读csv文件时将该列指定为索引。例如:

pd.read_csv(path, index_col=0)

相关问题