팬더를 배우면서 수개월 동안이 질문에 대한 답을 찾기 위해 노력했습니다. 나는 일상적인 업무에 SAS를 사용하며 핵심 지원에 적합합니다. 그러나 SAS는 여러 가지 이유로 소프트웨어의 일부로 끔찍합니다.
언젠가 SAS 사용을 파이썬과 팬더로 바꾸고 싶지만 현재는 대규모 데이터 세트에 대한 핵심 작업 흐름이 부족합니다. 분산 네트워크를 필요로하는 "빅 데이터"에 대해 말하는 것이 아니라 메모리에 맞추기에는 너무 크지 만 하드 드라이브에는 맞지 않는 작은 파일입니다.
내 첫 번째 생각은 HDFStore
디스크에 큰 데이터 세트를 보유하고 분석을 위해 필요한 부분 만 데이터 프레임으로 가져 오는 데 사용 하는 것입니다. 다른 사람들은 MongoDB를 사용하기 쉬운 대안으로 언급했습니다. 내 질문은 이것입니다 :
다음을 수행하기위한 모범 사례 워크 플로우는 무엇입니까?
- 플랫 파일을 영구적 인 온 디스크 데이터베이스 구조로로드
- 팬더 데이터 구조에 피드 할 데이터를 검색하기 위해 해당 데이터베이스 조회
- 팬더에서 조각을 조작 한 후 데이터베이스 업데이트
실제 사례는 특히 "대형 데이터"에서 팬더를 사용하는 모든 사람으로부터 높이 평가 될 것입니다.
편집-이것이 어떻게 작동하는지의 예 :
- 큰 플랫 파일을 반복적으로 가져 와서 디스크상의 영구 데이터베이스 구조에 저장하십시오. 이러한 파일은 일반적으로 너무 커서 메모리에 맞지 않습니다.
- 팬더를 사용하기 위해 메모리에 맞는이 데이터의 하위 집합 (일반적으로 한 번에 몇 열)을 읽으려고합니다.
- 선택한 열에서 다양한 작업을 수행하여 새 열을 만듭니다.
- 그런 다음 이러한 새 열을 데이터베이스 구조에 추가해야합니다.
이 단계를 수행하는 가장 좋은 방법을 찾으려고합니다. 팬더 및 파이 테이블에 대한 링크를 읽으면 새 열을 추가하는 것이 문제가 될 수 있습니다.
편집-Jeff의 질문에 구체적으로 응답 :
- 소비자 신용 리스크 모델을 구축 중입니다. 데이터의 종류에는 전화, SSN 및 주소 특성이 있습니다. 특성 값; 범죄 기록, 파산 등과 같은 경멸적인 정보 ... 매일 사용하는 데이터 집합에는 평균 및 혼합 데이터 유형 (숫자 및 문자 데이터의 연속, 명목 및 순서 변수)에 대해 거의 1,000 ~ 2,000 개의 필드가 있습니다. 행을 거의 추가하지 않지만 새 열을 만드는 많은 작업을 수행합니다.
- 일반적인 작업에는 조건부 논리를 사용하여 여러 열을 새로운 복합 열로 결합하는 작업이 포함됩니다. 예를 들면 다음과 같습니다
if var1 > 2 then newvar = 'A' elif var2 = 4 then newvar = 'B'
. 이러한 작업의 결과는 내 데이터 세트의 모든 레코드에 대한 새로운 열입니다. - 마지막으로, 이러한 새로운 열을 디스크상의 데이터 구조에 추가하고 싶습니다. 2 단계를 반복하면서 크로스 탭과 설명 통계로 데이터를 탐색하여 흥미롭고 직관적 인 모델 관계를 찾으려고합니다.
- 일반적인 프로젝트 파일은 일반적으로 약 1GB입니다. 파일은 행이 소비자 데이터 레코드로 구성되는 방식으로 구성됩니다. 각 행에는 모든 레코드에 대해 동일한 수의 열이 있습니다. 항상 그렇습니다.
- 새 열을 만들 때 행별로 하위 집합을 만드는 것은 매우 드 rare니다. 그러나 보고서를 만들거나 설명 통계를 생성 할 때 행의 하위 집합을 만드는 것이 일반적입니다. 예를 들어 소매 신용 카드와 같이 특정 비즈니스 라인에 대해 간단한 빈도를 만들고 싶을 수 있습니다. 이를 위해보고하려는 열과 함께 비즈니스 라인 = 소매점 인 레코드 만 선택합니다. 그러나 새 열을 만들 때는 모든 데이터 행과 작업에 필요한 열만 가져옵니다.
- 모델링 프로세스에서는 모든 열을 분석하고 일부 결과 변수와 흥미로운 관계를 찾고 이러한 관계를 설명하는 새로운 복합 열을 만들어야합니다. 내가 탐색하는 열은 일반적으로 작은 세트로 수행됩니다. 예를 들어, 속성 값을 다루는 20 개의 열 집합에 중점을두고 대출의 채무 불이행과 어떻게 관련되는지 살펴 보겠습니다. 일단 그것들이 탐구되고 새로운 칼럼이 만들어지면 나는 다른 칼럼 그룹으로 이동하여 대학 교육을 말하고 과정을 반복합니다. 내가하고있는 일은 내 데이터와 일부 결과 간의 관계를 설명하는 후보 변수를 만드는 것입니다. 이 과정의 마지막 부분에서, 나는 복합 칼럼에서 방정식을 만드는 학습 기술을 적용합니다.
데이터 집합에 행을 추가하는 경우는 거의 없습니다. 나는 거의 항상 새로운 열 (통계 / 기계 학습 용어의 변수 또는 기능)을 만들 것입니다.