2015-01-28 2 views
4

여기에 약간의 문제가 있습니다.팬더 read_table은 첫 번째 열을 인덱스로 사용합니다.

나는 아이디의 인 인덱스와 팬더를 사용하여 데이터 프레임에로드 할
id1-a1-b1-c1 

및 열 이름이 'A'인 : 나는 형태의 라인을 포함하는 txt 파일을 (의 라인 1 가정 해 봅시다)

'A' 'B' 'C' 
id1 a1 b1 c1 
id2 a2 b2 c2 
... ... ... ... 

내가 파일의 덩어리로 읽을 수 있습니다, 마지막에 'B', 'C'와 값을 대응하는 인공 지능, BI, CI

은 내가 dataframe 모양을 원하는 대용량이지만 한 번에 읽는다고 가정 해 보겠습니다.

with open('file.txt') as f: 
    table = pd.read_table(f, sep='-', index_col=0, header=None, lineterminator='\n') 
와 이름을 바꿀 열

table.columns = ['A','B','C'] 

뭔가처럼 내 전류 출력은 : 나는

감사

을 설명 할 수있는 추가 행이

'A' 'B' 'C' 
0 
id1 a1 b1 c1 
id2 a2 b2 c2 
... ... ... ... 

수정

나는

chunksize=20 

과하고 경기장을 추가 할 때 : 나는 다음과 같은 오류 얻을

for chunk in table: 
    print(chunk) 

:

pandas.parser.CParserError: Error tokenizing data. C error: Calling read(nbytes) on source failed. Try engine='python'. 
+0

전류 출력 같이 무엇인가? – ericmjl

+0

'skiprows' 매개 변수를'read_table'에 체크 아웃하십시오 – acushner

+0

입력 파일에서 열 이름을 도출 했습니까, 아니면 정적입니까? – Bryan

답변

5

을 당신이 이전에 열 이름을 알고 있다면 파일이 읽히면 read_tablenames 매개 변수를 사용하여 목록을 전달하십시오.

,515,
with open('file.txt') as f: 
    table = pd.read_table(f, sep='-', index_col=0, header=None, names=['A','B','C'], 
          lineterminator='\n') 

선택해 출력 :

 A B C 
id1 a1 b1 c1 
id2 a2 b2 c2 
+0

안녕하세요, 네, 고마워요! 그러나 chunkksize = 20을 추가하려고하면 오류가 발생한다고 가정 해 보겠습니다. pandas.parser.CParserError : 데이터를 토큰 화하는 중 오류가 발생했습니다. C 오류 : 원본에서 읽기 (nbytes)를 호출하지 못했습니다. try engine = 'python'. – fricadelle

+0

대단히 감사합니다! 도움이됩니다. – yunzhan

관련 문제