2016-09-06 4 views
2

나는 건너 뛸 행의 인덱스가있는 목록을 전달할 수있는 skiprows를 알고 있습니다. 그러나, 나는 유지하고 싶은 행의 색인을 가지고있다. pandas read_csv 특정 행만 유지하기 (파이썬)

내 CVS 파일이 수백만 개의 행이 같다고 말 :

내가로드하려는 인덱스의 목록은
A B 
0 1 2 
1 3 4 
2 5 6 
3 7 8 
4 9 0 

만 2, 3, 그래서

index_list = [2,3] 

입력에 대한 skiprows 함수는 [0,1,4]가됩니다. 그러나, 나는 단지 [2,3] 만 사용할 수 있습니다.

pd.read_csv(path, skiprows = ~index_list) 

하지만 운 .. 어떤 제안 :

내가 좋아하는 뭔가를 시도하고있다?

감사와 나는 모든 도움을 주셔서 감사합니다,

+0

가 대신 템플릿의 정확한 코드를 제공 할 수 있습니까? –

+0

@ Sreejith 잘하면 지금은 더 읽기 쉽습니다. – dleal

답변

2

난 당신이 this처럼, 첫번째 라인의 번호를 찾을 필요가있다 생각합니다.

to_exclude = [i for i in num_lines if i not in index_list] 

을 한 다음 데이터를로드 :

num_lines = sum(1 for line in open('myfile.txt')) 

그럼 당신은 index_list의 인덱스를 삭제해야

pd.read_csv(path, skiprows = to_exclude) 
+0

감사합니다. gabra 나는 이런 식으로해야 할 것이라고 생각했습니다. 특이한 행을 읽을 수는 없지만 건너 뛰기가 있다는 것은 이상한 것 같습니다. – dleal

+0

@dleal 나는 당신에게 동의합니다. [This] (http://stackoverflow.com/q/13651117/2029132) 또한 질문과 관련이 있습니다. – gabra

+0

감사합니다! 당신은 솔루션이 도움이되지만 – dleal

관련 문제