带有自定义分隔符的Python熊猫read_csv

时间:2020-08-16 20:38:41

标签: python pandas

我有一个CSV文件,其中的列使用非标准符号(|| /)分隔。

use std::rc::Rc;
use std::cell::RefCell;
use futures::channel::oneshot::channel;
use futures::executor::{ThreadPool, block_on};

fn main() {
    let pool = ThreadPool::new().unwrap();
    let (send, recv) = channel();
    let (send2, recv2) = channel();
    pool.spawn_ok(async move {
        let thread_unsafe = Rc::new(RefCell::new(40));
        let a = recv.await.unwrap();
        send2.send(a + *thread_unsafe.borrow()).unwrap();
    });
    let r = block_on(async {
        send.send(2).unwrap();
        recv2.await.unwrap()
    });
    println!("the answer is {}", r)
}

这会引发错误:

ParserError:第3行中应该有61个字段,看到68。错误可能是由于使用多字符定界符时引号被忽略了。

您能帮我如何阅读此文件吗?

1 个答案:

答案 0 :(得分:4)

来自.read_csv()

sep :str,默认为“,”:要使用的分隔符。 ...此外,超过1个字符且与'\ s +'不同的分隔符将被解释为正则表达式,并且还将强制使用Python解析引擎。

|是正则表达式语法中的特殊字符(表示OR),因此您需要对其进行转义,因此需要

df = pd.read_csv('data_analyst_assignment.csv',sep='\|\|/', engine='python')