2017-02-22 76 views
1

我有一个ASCII数据集,它具有ctrl字段分隔符和\ n作为行分隔符。我正在阅读Python,并想知道如何处理它。我特别希望能够将这些信息读入熊猫数据框。阅读带有字段分隔符的ASCII作为ctrl A和行分隔为Python的 n

我目前有;

import pandas as pd 
input = pd.read_csv('000000_0', sep='^A') 

的错误,那么我得到的是

_main__:1: ParserWarning: Falling back to the 'python' engine because the 'c' engine does 
not support regex separators; you can avoid this warning by specifying engine='python'. 

然后我不知道我怎么指定行分隔符太。

任何想法?

在此先感谢!

+0

你有使用通常的方法有问题? – Goyo

回答

3

使用pd.read_csv与参数sep=chr(1)

from io import StringIO 
import pandas as pd 

mycsv = """a{0}b{0}c 
d{0}e{0}f""".format(chr(1)) 


pd.read_csv(StringIO(mycsv), sep=chr(1)) 

    a b c 
0 d e f 
0

Python的csv库相当擅长阅读分隔的文件;-)

以从上面链接的文档的例子:

import csv 
with open('eggs.csv', 'rb') as csvfile: 
    spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|') 
    for row in spamreader: 
     print ', '.join(row) 

这将在文件中的行自动重复(因此处理换行符),并且可以如图所示设置分隔符。

+0

问题在于,OP如何正确地在他们的文件中写入特定的分隔符(''\ x01'',通常以ctrl + a的形式输入),这是您的答案没有解决的问题。要使用'csv'这个例子对这个问题有用,请用这个分隔符来显示一个例子。 – Nathan

0

如果CTRL+A你指的是ASCII码为SOH(税号的开始),尝试首先在新行分割你的数据,以获得行,并拆分这些对"\x01",这是SOH的十六进制代码。但是没有任何代码,数据,预期结果或错误消息,这主要是猜测。

相关问题