1
我使用熊猫生成一个csv字符串: df.to_csv(sep=',', encoding='utf-8', index=False, header=False)
。从Csv字符串中移除回车返回
我将在postgres中加载csv,如下所示。
COPY table_name FROM STDIN (FORMAT CSV,
DELIMITER ',',
HEADER FALSE,
NULL '',
ENCODING 'utf-8');
偶尔当有马车存在于CSV,我删除使用csv_str.replace('\r', '')
回报,这将失败。但是我不确定这种方法是否可能会改变csv中的某些现有数据。
是否有更可靠的方法来删除任何回车?我很担心丢失有关回车的信息,但我想尽可能地保留存储在csv文件中的任何其他数据。
我已经尝试了所有三种方法,并且只使用'line_terminator'似乎工作的一个,其余导致所有空是引用和空字符串无法区分。不过,如果可能的话,我宁愿使用引用方法。有没有解决方法? – user113531
您可以尝试将NULL表示更改为另一个字符串,例如在'COPY'命令中使用'na_rep ='\ N'',然后'NULL'\ N'',但不幸的是,熊猫引用了'\ N',然后'COPY'不能识别该值为NULL。所以我认为答案是否定的,你将不得不设置'line_terminator'。 – mhawke