gpt4 book ai didi

python - 在最后一列中用逗号解析 Pandas 中的 CSV 文件

转载 作者:太空狗 更新时间:2023-10-30 03:01:49 26 4
gpt4 key购买 nike

我遇到了一些格式不正确的 CSV 数据,我需要将这些数据读入 Pandas 数据框。我无法更改数据的记录方式(它来自其他地方),因此请不要提出建议的解决方案。

大部分数据都很好,但有些行的最后一列有逗号。一个简化的例子:

column1 is fine,column 2 is fine,column3, however, has commas in it!

所有行都应具有相同的列数 (3),但这个示例当然会破坏 CSV 阅读器,因为逗号表示有 5 列,而实际上有 3 列。

请注意,没有允许我使用标准 CSV 阅读器工具来处理此问题的引用。

不过,我确实知道的是,额外的逗号总是出现在最后(最右边)的一列中。这意味着我可以使用归结为以下内容的解决方案:

“总是假设有 3 列,从左边数起,并将所有额外的逗号解释为第 3 列中的字符串内容”。或者换句话说,“将前两个逗号解释为列分隔符,但假设任何后续逗号只是第 3 列中字符串的一部分。”

我可以想出很多笨拙的方法来完成这个,但我的问题是:是否有任何优雅、简洁的方法来解决这个问题,最好是在我对 pandas.csv_reader(...) 的调用中>?

最佳答案

修复csv,然后正常进行:

import csv
with open('path/to/broken.csv', 'rb') as f, open('path/to/fixed.csv', 'wb') as g:
writer = csv.writer(g, delimiter=',')
for line in f:
row = line.split(',', 2)
writer.writerow(row)

import pandas as pd
df = pd.read_csv('path/to/fixed.csv')

关于python - 在最后一列中用逗号解析 Pandas 中的 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24164249/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com