有没有一种方法可以在pandas/python的csv文件中使用双引号来处理Pople?

有没有一种方法可以在pandas/python的csv文件中使用双引号来处理Pople?,pandas,csv,Pandas,Csv,我处理的是客户发送的文件,所以我们只需要花很大的力气才能更改发送的文件。有时,在自由文本字段中,我们会提到长度,使用双引号字符表示英寸。例如,文件可能如下所示 "count","desc","start_date","end_date" "3","it is tall","3/18/2019","4/20/2020" "10&q

我处理的是客户发送的文件,所以我们只需要花很大的力气才能更改发送的文件。有时,在自由文本字段中,我们会提到长度,使用双引号字符表示英寸。例如,文件可能如下所示

"count","desc","start_date","end_date"
"3","it is tall","3/18/2019","4/20/2020"
"10","height: 108" is nice,","04/11/2016","09/22/2015"
"8","it is short","7/20/2019","8/22/2020"
我们正在使用python/pandas。当我使用以下命令加载它时:

import pandas as pd
df = pd.read_csv("sample.csv", dtype=str)
我得到:

我希望解决两个问题:

  • 更重要的问题:我希望
    start\u date
    的第二个值为
    04/11/2019
    (开头不带逗号,结尾不带双引号)
  • 不太重要的问题:我希望
    desc
    的第二个值为
    height:108“很好,
    (带英寸指示器)

  • 我知道正确的做法是使用
    \“
    获取转义引号的文件,但正如我所说,这将是一个很难获得的更改。

    您可以利用值由
    ”、“
    分隔的模式,并删除第一个和最后一个
    。如果自由文本字段包含
    “,此解决方案将中断,“

    输出:

    “计数”、“说明”、“开始日期”、“结束日期”
    “3”、“它很高”、“2019年3月18日”、“2020年4月20日”
    “10”,“身高:108”很好,“04/11/2016”,“09/22/2015”
    “8”、“它很短”、“2019年7月20日”、“2020年8月22日”
    
    删除每行中的第一个和最后一个
    ”,并用分隔符
    读取\u csv
    ,“

    输出:

    计数说明开始日期结束日期
    0 3它很高2019年3月18日2020年4月20日
    1 10高度:108英寸很好,2016年11月4日2015年9月22日
    2.8短于2019年7月20日2020年8月22日
    
    import pandas as pd
    import io
    
    with open('sample.csv') as f:
        t = f.read()
    print(t)
    
    t = '\n'.join([i.strip('"') for i in t.split('\n')])
    
    pd.read_csv(io.StringIO(t), sep='","', engine='python')