2017-02-22 9 views
1

フィールド区切りと\ nを区切り文字として持つASCIIデータセットがあります。私はこれをPythonに読み込み、対処する方法が不思議です。特に、私はこの情報をパンダのデータフレームに読み込むことができるようにしたいと考えています。フィールドの区切り文字をctrl A、行区切りを nとしてPythonに読み込む

私は現在持っています。

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_csvsep=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

あなたはSOH(見出しの開始)のために、ASCIIコードを意味CTRL+Aによって場合は、行を取得するために最初の改行上にデータを分割してみてください、とSOH用進コードである、"\x01"にこれらを分割します。しかし、コード、データ、期待される結果、またはエラーメッセージがなければ、これはほとんど推測です。パラメータを指定して

関連する問題