【发布时间】:2019-04-04 10:13:27
【问题描述】:
我分析了大量的金融数据集,这些数据集经常因为数据字段损坏而给我带来麻烦。幸运的是,在不久的将来,我有机会改变向我提供数据的方式。数据将作为双分号分隔的 txt 文件传递,其中的字段用双引号括起来,即 "A";;"B";;"C"
在使用 pandas 的 read_csv 将此文件转换为 pandas df 时,pandas 似乎无法识别双引号,只能识别双分号分隔符。因为输出看起来像:“A”“B”“C”,而不是 A B C
我尝试将 quotechar='"' 作为参数传递并引用=csv.QUOTE_ALL,但这并没有改变任何东西。
import pandas as pd
import csv
def create_df(loc):
df = pd.read_csv(loc, sep=';;', dtype=object, encoding="ISO-8859-1", quotechar='"', quoting=csv.QUOTE_ALL, header=None)
return df
directory = 'C:\\PycharmProjects\\Test\\'
file = directory + 'test;;qq;;.txt'
df = create_df(file)
writer = pd.ExcelWriter('test.xlsx')
df.to_excel(writer, 'test')
writer.save()
【问题讨论】:
-
你能创建一个几行的虚拟数据集,上传它(最好在你的 github 上)并在此处链接,我对你的数据集的外观有一些巨大的困惑,因此不想为可能不是问题的问题创建一个解决方案,据我所知,我会将整个 CSV 作为字符串读取,使用一些正则表达式魔法并将其转换为适当的 csv,但我认为我如果您可以创建一个虚拟数据集,则可以为您提供更确凿的信息。
-
你可以试试
df.apply(lambda s:s.str.replace('"', "")),其中 df 是你的数据框。