2016-06-26 5 views
1

지금까지 미국에서 발생한 토네이도에있는 거대한 데이터를 분석해야하는 프로젝트를 진행하고 있습니다. 파이썬이 데이터 분석에 유용하기 때문에 나는 그것을 선택했다. 하지만 몇 가지 질문이 있습니다. 명확한 설명이 필요합니다. 1. 데이터 분석을 위해 팬더를 사용하고 있습니다. 내가 지금까지 한 것은 모든 .csv 파일을 포함하는 하나의 큰 데이터 프레임 (1GB .csv 파일)을 만들었습니다. 2000 년에 발생한 총 사망자 수를 계산하고 싶다고 가정 해 봅시다. 쿼리가 결과를 가져 오지만 시간이 오래 걸립니다. 모든 데이터를 데이터 프레임에 저장하고 데이터를 가져 오는 것이 좋습니까? 아니면 다른 빠른 접근 방식이 있습니다. 2. 또 다른 접근법은 전체 파일의 json 문자열을 만들고 json 문자열을 쿼리합니다. 나는이 접근법에서 아무 것도하지 않았다. 좋은 분이십니까?데이터를 가져 와서 파이썬으로 분석하기위한 접근법

감사합니다. https://dato.com/products/create/docs/generated/graphlab.SFrame.html

sframe 라이브러리는 빠르게로드하고 쉽게 색인입니다 바이너리 형식으로 저장할 수 있습니다 :

답변

0

팬더에는 메모리 사용과 관련하여 몇 가지 제한 사항이 있습니다. 메모리 할당이 게으르기 때문에 일반적인 파이썬 문제이기도하다. 그러므로 당신의 기억이 충분하지 않으면 그것은 더러워집니다.

그래서 여기에는 두 개의 도메인이 있습니다. 1. 메모리 절약, 2. 시간 최적화. 당신이 고려할 수 무엇

:

  1. 메모리 효율성을 위해 :이 link를 참조하십시오. 1.1 모든 데이터를 한 번에 필요로하는 경우 (예 : 슈퍼 집계 통계 (sum ([all columns])) 필요하지 않은 데이터 프레임의 일부 열을 신중하게 삭제하거나 대신 팬더가 아닌 다른 것으로 전환 할 수 있습니다 (예 : .hdf5, pyrocksdb, leveldb ...) 이것은 당신에게 덜 편한 분석을 의미합니다.
  2. 일부 작업의 경우 팬더 데이터 프레임이 올바른 시간대 설정입니다. 색인 스키마를 확인하고 예를 들어 행 반복을 피하십시오 . 2.2 팬더 + 파이썬 스크립팅보다 훨씬 빨라집니다 일부 작업에 대한 NumPy와 벡터 방법을 사용.

  3. 는 개인적으로도 팬더처럼 + SQL 라이트를 혼합 방식을 사용하여 미니 배치보다 매우 좋은 경험을 할 트위스트 (1 번 포인트 참조).

-1

대신 팬더의 당신은 sframe 라이브러리를 사용할 수 있습니다. Sframe을 사용하면 배치와 페이지 데이터를 디스크로 사용할 수 있으므로 사용 가능한 RAM보다 훨씬 큰 데이터 세트로 작업 할 수 있습니다. 라이브러리는 여러 코어를 효과적으로 활용하여 조인 및 기타 작업의 속도를 향상시킬 수 있습니다. 경험을 토대로 사용 사례를 훨씬 빠르게 처리 할 수 ​​있어야합니다.

구문은 pandas보다 약간 덜 편리하지만 기능면에서 비슷하며 sframes를 pandas 데이터 프레임으로 변환하는 to_dataframe() 연산자가 있습니다.

pip install sframe 

당신은 csv 파일을 읽을 수있는 read_csv API를 사용할 수 있으며, 다음 바이너리 형식으로 저장하는 API를 저장하고 당신은로드로드 API를 사용할 수 있습니다

를 설치하려면 바이너리 형식. 위의 링크에서 모두 다룰 수 있습니다.

관련 문제