【发布时间】:2020-08-05 11:58:38
【问题描述】:
我有一个大的 CSV 文件,我想使用 datagrip 上传到 postgres。当我上传它时,我收到一些记录的以下错误:
11807:98: actual: value separator (,), expected: record separator (\n)
问题是只有 19 列被识别,而在极少数记录中有 20 个值。对于那些记录,它根本不导入记录。我确实希望在我的数据库中拥有所有行。
我认为这将是 python 中的小菜一碟。所以我开始使用 pandas 并使用以下行加载数据:
df = pd.read_csv('filename.csv', sep='delimiter', header=None)
确实包含文件。但是,要删除 19 逗号后面的所有值,或者只添加完整的第 20 列,我以后可以删除它,这比我预期的要困难得多。感觉这是一个微不足道的问题,我需要朝着正确的方向努力。
【问题讨论】:
-
你能提供更多细节吗?文件的文件样本将是理想的。
-
可能更容易将问题行提取到新文件中,然后检查、编辑和重新处理它们。
-
也许通过添加
names=range(20)然后删除最后一列df.drop(19, 1)来告诉 read_csv 列数会起作用吗?
标签: python pandas postgresql csv