gpt4 book ai didi

读取不良的 CSV 文件结构

转载 作者:行者123 更新时间:2023-12-02 09:22:18 26 4
gpt4 key购买 nike

我正在尝试读取一个大型 csv 数据文件(由 , 分隔),但我一直卡在如下行上:原始文件链接:“http://daniels-pull.universityofdenv.netdna-cdn.com/assets/GeneralOccurrencesAll.csv

| RIN    | UCR_Group | Loc                                         |
|--------|-----------|---------------------------------------------|
|490658 | Property | 400 BLOCK 17TH ST, 5TH FL |
|506928 | Disorder | 1400 BLOCK W COLORADO AVE, COLORADO SPRINGS |

如您所见,该列中也使用了文件的分隔符。有没有办法将列的分隔符指定为要在文件中读取的正则表达式,或者我需要研究使用 read.fwf 来查找每个字段的最大长度,并使用它解析数据?目前,这是我迄今为止提出的代码:

datafile <- "http://daniels-pull.universityofdenv.netdna-cdn.com/assets/GeneralOccurrencesAll.csv"
new <-readr::read_delim(datafile, sep ='[\\S],[\\S]')
new <-read.table(datafile, sep ='[\\S],[\\S]' )

我应该使用 read.fwf,还是尝试手动提取问题列?任何帮助将不胜感激。

编辑:

对于奖励积分,我真的很想构建一个函数来检测 csv 文件中的不良列,或者看起来可能会扰乱文件结构的数据,例如本例。这样,我就不必使用文本编辑器,并且可以通过编程方式在文件中找到这些错误。关于如何构建这样的东西的想法?

最佳答案

使用panda.read_csv和正则表达式否定前瞻。相同的正则表达式也应该在 R 中工作。

import pandas as pd

df = pd.read_csv(filename, sep=r',(?!\s)')

过滤 dfLOC 包含逗号的行,以验证我们是否已正确解析:

df[df.LOC.str.contains(',')]

enter image description here

关于读取不良的 CSV 文件结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41540351/

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