pandas를 사용하는 “대량 데이터” 워크플로

| | | | | | | | |

저는 판다를 배우면서 몇 달 동안 이 질문에 대한 답을 찾기 위해 노력했습니다. 저는 일상적인 작업에 SAS를 사용하며 "핵심 외 지원"에 매우 유용합니다. 그러나 SAS는 다른 여러 가지 이유로 소프트웨어로서 끔찍합니다.

언젠가 SAS 사용을 파이썬과 팬더로 대체하고 싶지만 현재 대규모 데이터 세트에 대한 코어 외 워크플로가 부족합니다. 분산 네트워크가 필요한 "빅 데이터"가 아니라 파일이 너무 커서 메모리에 맞지만 하드 드라이브에 들어갈 만큼 충분히 작습니다.

저의 첫 번째 생각은 HDFSStore를 사용하여 디스크에 대용량 데이터세트를 보관하고 필요한 부분만 데이터프레임으로 가져오는 것입니다. 분석을 위해. 다른 사람들은 MongoDB를 사용하기 쉬운 대안으로 언급했습니다. 제 질문은 다음과 같습니다.

다음을 수행하기 위한 몇 가지 모범 사례 워크플로는 무엇입니까:

  1. 플랫 파일을 디스크 상의 영구 데이터베이스 구조로 로드
  2. pandas 데이터 구조에 피드할 데이터를 검색하기 위해 해당 데이터베이스에 쿼리
  3. pandas에서 조각을 조작한 후 데이터베이스 업데이트

실제 사례를 주시면 감사하겠습니다. , 특히 "대형 데이터"에 팬더를 사용하는 모든 사람에게서.

편집 -- 이것이 작동하는 방법의 예:

  1. 큰 평면을 반복적으로 가져오기- 파일을 만들고 영구적인 온디스크 데이터베이스 구조에 저장합니다. 이러한 파일은 일반적으로 너무 커서 메모리에 맞지 않습니다.
  2. Pandas를 사용하기 위해 메모리에 들어갈 수 있는 이 데이터의 하위 집합(보통 한 번에 몇 개의 열만)을 읽고 싶습니다.
  3. 선택한 열에 대해 다양한 작업을 수행하여 새 열을 만듭니다.
  4. 그런 다음 이 새 열을 데이터베이스 구조에 추가해야 합니다.

이 단계를 수행하는 가장 좋은 방법을 찾으려고 노력하고 있습니다. pandas 및 pytables에 대한 링크를 읽으면 새 열을 추가하는 것이 문제가 될 수 있는 것 같습니다.

편집 -- Jeff의 질문에 구체적으로 응답하기:

  1. 저는 소비자를 구축하고 있습니다. 신용 위험 모델 데이터의 종류에는 전화, 주민등록번호 및 주소 특성, 재산 가치, 범죄 기록, 파산 등과 같은 경멸적인 정보가 포함됩니다. 매일 사용하는 데이터 세트에는 혼합 데이터 유형의 평균적으로 거의 1,000~2,000개의 필드가 있습니다. 숫자 및 문자 데이터의 연속, 명목 및 순서 변수. 행을 거의 추가하지 않지만 새 열을 만드는 많은 작업을 수행합니다.
  2. 일반적인 작업에는 조건부 논리를 사용하여 여러 열을 새로운 복합으로 결합하는 작업이 포함됩니다. 열입니다. 예를 들어 if var1 > 2 then newvar = "A" elif var2 = 4 then newvar = "B" 이러한 작업의 결과는 내 데이터세트의 모든 레코드에 대한 새 열입니다.
  3. 마지막으로 이 새 열을 디스크 상의 데이터 구조에 추가하고 싶습니다. d 모델에 대한 흥미롭고 직관적인 관계를 찾기 위해 크로스탭 및 기술 통계로 데이터를 탐색하면서 2단계를 반복합니다.
  4. 일반적인 프로젝트 파일은 일반적으로 약 1GB입니다. 파일은 행이 소비자 데이터 레코드로 구성되는 방식으로 구성됩니다. 각 행에는 모든 레코드에 대해 동일한 수의 열이 있습니다. 이것은 항상 그렇습니다.
  5. 새 열을 생성할 때 행별로 부분 집합을 만드는 경우는 매우 드뭅니다. 그러나 보고서를 만들거나 설명을 생성할 때 행을 기준으로 부분 집합을 만드는 것은 매우 일반적입니다. 통계. 예를 들어, 소매 신용 카드와 같이 특정 비즈니스 라인에 대한 간단한 빈도를 만들고 싶을 수 있습니다. 이렇게 하려면 보고할 열 외에 비즈니스 라인 = 소매인 레코드만 선택합니다. 그러나 새 열을 만들 때 데이터의 모든 행과 작업에 필요한 열만 가져옵니다.
  6. 모델링 프로세스에서는 모든 열을 분석하고 일부 결과 변수와의 흥미로운 관계를 찾고, 그리고 이러한 관계를 설명하는 새로운 복합 열을 만듭니다. 내가 탐색하는 열은 일반적으로 작은 세트로 수행됩니다. 예를 들어, 자산 가치를 다루는 20개 열 집합에 초점을 맞추고 대출 채무 불이행과 어떤 관련이 있는지 관찰하겠습니다. 이러한 항목을 탐색하고 새 열이 만들어지면 다른 열 그룹(예: 대학 교육)으로 이동하여 프로세스를 반복합니다. 내가 하고 있는 일은 내 데이터와 일부 결과 간의 관계를 설명하는 후보 변수를 만드는 것입니다. 이 프로세스의 맨 마지막에 복합 열에서 방정식을 만드는 몇 가지 학습 기술을 적용합니다.

데이터 세트에 행을 추가하는 경우는 거의 없습니다. 거의 항상 새 열(통계/머신 러닝 용어의 변수 또는 기능)을 생성할 것입니다.

pandas를 사용하는 "대량 데이터" 워크플로 __del__: Questions

pandas를 사용하는 "대량 데이터" 워크플로 _files: Questions

Shop

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Best laptop for Zoom

$499

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News

Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method