ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • MongoDB에서 데이터 저장 및 로드
    IT의 이해 2019. 11. 12. 15:11

    데이터베이스와 상호 작용
    많은 애플리케이션에서 데이터는 텍스트 파일에서 나오는 경우가 거의 없으며, 이는 대량의 데이터를 저장하는 상당히 비효율적인 방법이다. SQL 기반 관계 데이터베이스은 널리 사용되고 있으며, 많은 대체 비SQL 데이터베이스가 상당히 인기를 끌고 있다. 데이터베이스의 선택은 대개 애플리케이션의 성능, 데이터 무결성 및 확장성에 따라 달라진다. SQL에서 DataFrame으로 데이터를 로딩하는 것은 매우 간단하며, 팬더는 프로세스를 단순화하는 몇 가지 기능을 가지고 있다. 예를 들어 Python의 내장 sqlite3 드라이버를 사용하여 메모리 내 SQLite 데이터베이스를 사용할 경우이다. 대부분의 파이썬 SQL 드라이버는 테이블에서 데이터를 선택할 때 튜플 목록을 반환한다. tuples 목록을 DataFrame 생성자에게 전달할 수 있지만, 커서의 설명 속성에 포함된 열 이름도 필요하다. 이것은 당신이 데이터베이스를 조회할 때마다 반복하지 않는 꽤 혼란스러운 일이다. pandas.io.sql 모듈에서 프로세스를 간소화하는 read_frame 기능 제공. 선택 문과 연결 개체만 전달한다.

     

    MongoDB에서 데이터 저장 및 로드
    NoSQL 데이터베이스는 많은 다른 형식을 취한다. 어떤 것들은 버클리처럼 단순한 핵심 가치 가게들이다.DB 또는 Tokyo 캐비닛은 문서 기반인 반면, 다른 캐비닛은 받아쓰기 같은 오브젝트가 스토리지의 기본 단위가 된다. 나는 MongoDB를 예로 들었다. 나는 MongoDB 인스턴스를 내 컴퓨터에서 로컬로 시작했고, MongoDB의 공식 드라이버인 Pymongo를 사용하여 기본 포트에 연결했다. MongoDB: MongoDB에 저장된 문서는 데이터베이스 내부의 컬렉션에서 찾을 수 있다. 실행 중인 MongoDB 서버의 각 인스턴스는 여러 개의 데이터베이스를 가질 수 있으며, 각 데이터베이스는 여러 개의 컬렉션을 가질 수 있다. 이 장의 앞부분의 Twitter API 데이터를 저장하고 싶다고 가정하자. 첫째, 트윗 컬렉션에 액세스할 수 있다. 그런 다음 트윗 목록을 로드하여 Twits.save를 사용하여 각 트윗을 컬렉션에 작성한다. 반환되는 커서는 각 문서를 받아쓰기로 산출하는 반복기 입니다. 위와 같이 나는 이것을 DataFrame으로 변환할 수 있으며, 선택적으로 각 트윗에서 데이터 필드의 서브셋을 추출할 수 있다.

     

    데이터 정렬: 정리, 변환, 병합, 변경
    데이터 분석 및 모델링에서 프로그래밍 작업의 대부분은 로딩, 클리닝, 변환 및 재배열과 같은 데이터 준비에 사용된다. 때로는 데이터가 파일이나 데이터베이스에 저장되는 방식이 데이터 처리 응용 프로그램에 필요한 방식이 아닐 수도 있다. 많은 사람들은 파이썬, 펄, R, 자바와 같은 범용 프로그래밍이나 sed나 awk와 같은 UNIX 텍스트 처리 도구를 사용하여 한 형태에서 다른 형태로 데이터를 임시로 처리하는 것을 선택한다. 다행스럽게도, 파이썬 표준 도서관과 함께 판다는 당신에게 높은 수준의 유연하고 고성능의 핵심 조작과 알고리즘을 제공하여 당신이 큰 어려움 없이 올바른 형태로 데이터를 엮을 수 있게 해준다. 만약 당신이 이 책이나 판다 도서관의 다른 어디에도 없는 데이터 조작의 유형을 확인한다면, 그것을 우편물 발송 목록이나 GitHub 사이트에서 자유롭게 제안하십시오. 사실, 판다의 디자인과 구현의 많은 부분은 실제 세계의 응용의 필요에 의해 추진되어 왔다.

    데이터 세트 결합 및 병합
    팬더 개체에 포함된 데이터는 여러 가지 기본 제공 방식으로 결합할 수 있다.  Pander.merge는 하나 이상의 키에 기반하여 DataFrame의 행을 연결한다. 이것은 데이터베이스 결합 작업을 구현하기 때문에 SQL 또는 다른 관계형 데이터베이스의 사용자에게 친숙할 것이다. pander.concat은 축을 따라 물체를 함께 접착하거나 쌓는다. complex_first 인스턴스방법을 사용하면 겹치는 데이터를 함께 분할하여 한 객체의 결측값을 다른 객체의 값으로 채울 수 있다. 나는 이것들을 하나하나 설명하고 여러 가지 예를 들겠다. 그것들은 그 책의 나머지 부분 전체에 걸쳐 예시에 활용될 것이다.

     

    데이터베이스 스타일 데이터프레임 병합
    병합 또는 결합 작업은 하나 이상의 키를 사용하여 행을 연결하여 데이터 세트를 결합한다. 이러한 작업은 관계형 데이터베이스의 중심이다. 판다의 병합 기능은 데이터에 이러한 알고리즘을 사용하는 주요 시작점이다. 이것은 다대일 병합 상황의 예다. df1의 데이터는 a와 b로 표시된 여러 개의 행을 가지고 있는 반면, df2는 키 열의 각 값에 대해 하나의 행만 가지고 있다. 다음 개체와 병합과 입할 열을 지정하지 않았다는 점에 유의하십시오. 지정되지 않은 경우, 병합은 겹치는 열 이름을 키로 사용한다. 그러나 명시적으로 지정하는 것이 좋다: 각 개체에서 열 이름이 다를 경우 다음과 같이 별도로 지정할 수 있다.
    'c'와 'd' 값과 관련 데이터가 결과에 누락되어 있다는 것을 알게 될 것이다. 기본적으로 병합은 '내부' 결합을 한다. 결과의 키는 교차점이다. 다른 가능한 옵션으로는 '왼쪽', '오른쪽', '외부'가 있다. 외측 조인은 키의 결합을 취하여 좌우 조인을 모두 적용하는 효과를 결합한다. 많은 수의 조합은 반드시 직관적인 행동을 하는 것은 아니지만 잘 정의되어 있다. 예를 들어보자. 많은 수의 결합이 행의 카르테시아 산물을 형성한다. 왼쪽 DataFrame에는 3개의 'b' 행과 오른쪽에는 2개의 'b' 행이 있었기 때문에 결과적으로는 6개의 'b' 행이 있다. 조인 방법은 결과에 나타나는 뚜렷한 키 값에만 영향을 미친다. 병합 방법의 선택에 따라 결과에 어떤 키 조합이 나타날지 결정하려면 여러 키가 단일 결합 키로 사용될 튜플의 배열을 형성한다고 생각해 봐야한다.

     

    'IT의 이해' 카테고리의 다른 글

    DataFrame 시리즈 Permering  (0) 2019.11.12
    오버랩과 데이터 결합  (0) 2019.11.12
    XML 및 HTML  (0) 2019.11.12
    데이터 로드, 저장 및 파일 형식  (0) 2019.11.12
    히스토그램을 계산하기  (0) 2019.11.12

    댓글

Designed by Tistory.