2014-04-01 5 views
2

저는 커다란 csv 파일을 수천 개의 문자열로 된 팬더로 읽고 있습니다. 열의 너비를 제한하는 빠른 방법이 있습니까? 즉, 첫 100 자만 유지 하시겠습니까? 당신이 메모리에 전체를 읽을 수있는 경우팬더의 열 너비를 줄이기

+0

실제로 프레임에 저장되기 전에 사실을 말하고 싶습니까? 자르고 싶을까요? – DSM

+0

저장하기도 전에 좋을 것입니다. 사실 적용 후 신청이 가장 빠른 방법일까요? – Luke

+0

지금 신청서 작성. 객체 유형의 열 너비를 가져 오는 방법이 있습니까? – Luke

답변

7

, 당신은 벡터 연산의 str 방법을 사용할 수 있습니다 :

>>> df = pd.read_csv("toolong.csv") 
>>> df 
    a      b c 
0 1 1256378916212378918293 2 

[1 rows x 3 columns] 
>>> df["b"] = df["b"].str[:10] 
>>> df 
    a   b c 
0 1 1256378916 2 

[1 rows x 3 columns] 

은 또한 당신이

>>> df["b"].str.len() 
0 10 
Name: b, dtype: int64 

I을 사용하여 길이와 시리즈를 얻을 수 있습니다 원래 궁금해했다면

더 좋을지 모르지만 실제로는 알지 못합니다. 변환기가 행 단위로 호출되거나 전체 열의 사실 이후에 호출되는 경우

+1

''변환기 '는 행 단위로 호출됩니다 (cython 함수에 의해). 나는 "str"변환이 더 빠를 것이라고 생각한다. (첫 번째 예) – Jeff

+0

@Jeff : 아, 잘 알고있다. 즉, 문자열이 터무니없이 길고 덩어리를 사용하지 않으려는 경우이를 사용하여 둘 이상의 행을 초과하지 않도록 할 수 있습니다. – DSM

+0

소리가 난다.이 코드는 inspectino (일명 eye-balling)이다. 그리고 얼마나 믿을만한 지 알 수 있습니다 :) – Jeff

관련 문제