2017-02-22 1 views
1

나는 ctrl 필드 구분자와 \ n을 구분 기호로 사용하는 ASCII 데이터 세트를 가지고 있습니다. 이것을 파이썬으로 읽으 려하고 그것을 다루는 방법을 궁금해합니다. 특히이 정보를 팬더 데이터 프레임으로 읽을 수 있기를 바랍니다.필드 구분 기호를 ctrl A로, ASCII를 n을 파이썬으로 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_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

파이썬의 csv 도서관은 독서 파일 ;-)

이 위에 링크 된 문서의 예를 복용 구분 꽤 좋은 :

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

이 자동으로 따라서 (파일의 라인을 반복 처리합니다 줄 바 Y 기 문자)를 표시하고, 표시된대로 분리.자를 설정할 수 있습니다.

+0

문제는 OP가 자신의 파일 (''\ x01 '', 대개 ctrl + a로 입력)에 특정 구분 기호를 올바르게 쓰는 방법이며 응답에서 다루지 않습니다. 이 질문에 유용한'csv'로이 예제를 만들려면 그 구분 기호로 예제를 보여주십시오. – Nathan

0

당신이 SOH에 대한 ASCII 코드 (호의 시작)을 의미 CTRL+A에 의한 경우 행을 얻기 위해 첫째 줄 바꿈에 데이터를 분할 시도하고 SOH에 대한 16 진 코드 인 "\x01"에서 이러한 분할. 그러나 코드, 데이터, 예상 결과 또는 오류 메시지가 없으면 이는 대부분 추측입니다. 매개 변수