熊猫无法在一夜之间打开 csv 文件

时间:2021-02-25 13:37:49

标签: python pandas csv

我正在构建一个用 Pandas 生成 csv 文件的脚本,但我正在尝试这样做,如果该文件已存在于指定路径中,则该脚本只会将新信息附加到现有文件中,而如果该文件不存在,它将创建一个新文件。

我现在的代码是这样的:

#Trying to find the file in the designated path and then appending the new info

try:
   pd.read_csv('file.csv', encoding = 'ANSI')
   info.to_csv('file.csv', index = False, header = None, sep = ';', encoding = 'ANSI', decimal = ',', mode = 'a')

#Creating a new file into the existing path if it doesn't exist

except IOError:
   info.to_csv('file.csv',  index = False, sep = ';', encoding = 'ANSI', decimal = ',', header = True)

这在白天工作正常,但是当我第二天尝试运行脚本时,pd.read_csv() 遇到以下错误:

ParserError:标记数据时出错。 C 错误:第 10 行应为 1 个字段,看到 2

我已经读到解决此问题的一种方法是添加参数 error_bad_lines = False,但这会导致计算时间呈指数级减慢。本例中的冗长表明 .csv 文件的几乎每一行都包含一些额外的 \n

是否有其他方法可以解决此文件附加/创建问题?

我需要能够在excel中打开这个文件来检查里面的信息。我应该尝试创建一个 .xlsx 文件而不是 .csv 吗?

1 个答案:

答案 0 :(得分:1)

使用 pathlib 检查文件是否已经 exists。如果您真的想加载整个文件(仅检查它是否存在),则需要使用与 pd.to_csv 设置中相同的参数。但是后者对于简单的检查来说在计算上非常昂贵,所以我建议使用 pathlib

pd.read_csv 中的默认分隔符是 ,(这是您的小数点分隔符),因此错误可能是由于尝试使用错误的分隔符(更多 here)读取文件。< /p>

可能的解决方案:

from pathlib import Path

if Path('file.csv').exists():
    info.to_csv('file.csv', index = False, header = None, sep = ';', encoding = 'ANSI', decimal = ',', mode = 'a')
else:
    info.to_csv('file.csv',  index = False, sep = ';', encoding = 'ANSI', decimal = ',', header = True)