首页 > 解决方案 > 解码 CSV 文件

问题描述

df=pandas.read_csv("commaSeperated.csv") 将 csv 文件导入 pandas,但查看 pandas.columns 我得到了这种文件格式

在此处输入图像描述

用 pandas.head() 查看文件头我得到了这个文件输出

在此处输入图像描述

现在我的问题是,有什么方法可以在没有这些字符的情况下输出正确的 CSV 文件

这就是它在记事本++中的样子 "003 ""|"" ""|"" ""|""7105926 ""|"" ""|"" ""|"" ""|"" ""|""""|"" ""|"" ""|"" ""|"" ""|"" ""|""""|"" ""|"" ""|"" ""|"" ""|"" ""|"" ""|""""|"" ""|"" ""|"" ""|"" ""|"" ""|""""|"" ""|"" ""|"" ""|"" ""|"" ""|""""|"" ""|"" ""|"" ""|"" ""|"" ""|""绿色 ""|"" ""|"" ""|""24-APR-20""|""GH20200071398001DK ""|"" ""|"" ""|"" ""|""TNMSCA12 "" |"" ""|""" ""|"" ""|"" ""|""TNMSCA12 ""|"" ""|""" ""|"" ""|"" ""|""TNMSCA12 ""|"" ""|""

标签: pythonpandascsvutf-8spreadsheet

解决方案


您的初始文件不是正确的 csv 格式。长话短说,唯一合理的做法是让该恐怖片的制作人修复格式。如果不可能,可以使用 csv 模块尝试通过每行解码一次并输出第一个也是唯一的字段来修复它:

import csv

with open("commaSeperated.csv") as fdin, open("fixed.csv", newline="\r\n") as fdout:
    rd = csv.reader(fdin, delimiter='|', quotechar='"')
    for row in rd:
        print(row[0], file=fdout)

完成后,您可以尝试将其加载到 pandas DataFrame 中:

df = pd.read_csv("fixed.csv", sep=r"\|")

推荐阅读