-
데이터 로드, 저장 및 파일 형식IT의 이해 2019. 11. 12. 14:51
이 경우 판다는 정수 지수화에 "뒤로 떨어질 수 있다"고 하지만, 미묘한 버그를 도입하지 않고 이것을 하는 (내가 알고 있는) 안전하고 일반적인 방법은 없다. 여기에 0, 1, 2가 포함된 인덱스가 있지만 사용자가 원하는 것(라벨 기반 인덱싱 또는 위치 기반)을 추론하는 것은 어렵다. 인덱서를 포함하는 축 인덱스를 가지고 있다면 정수를 사용한 데이터 선택은 항상 레이블 지향적일 것이다. 여기에는 ix를 사용한 절삭도 포함된다. 인덱스 유형에 관계없이 신뢰할 수 있는 위치 기반 인덱싱이 필요한 경우, 시리즈에서 irow 및 DataFrame Panel Data에서 iget_value 방법을 사용할 수 있다. 이 책의 주요 주제는 아니지만 판다는 3차원 아날로그로 생각할 수 있는 패널 데이터 구조를 가지고 있다. DataFrame의 경우 판다의 개발 초점은 대부분 도표 데이터 조작에 있어 이들에 대한 추론이 더 용이하고 계층적 색인화를 통해 많은 경우 N차원 배열을 사용할 필요가 없기 때문이다. 패널을 작성하려면 DataFrame 객체 또는 3차원 ndarray를 사용해야 한다.
데이터 로드, 저장 및 파일 형식
피톤으로 데이터를 쉽게 수출입할 수 없다면 이 책의 도구는 별로 쓸모가 없다. 물론 이 과정에 도움이 될 수 있는 수많은 도구들이 다른 도서관에도 있지만, 판다 개체들의 입출력에 집중할 겁니다. 예를 들어, NumPy는 메모리 매핑된 어레이를 지원하는 등 로우레벨이지만 매우 빠른 바이너리 데이터 로딩 및 저장을 특징으로 한다. 자세한 내용은 12장을 참조하십시오. 입력과 출력은 일반적으로 텍스트 파일 및 기타 더 효율적인 디스크 형식 읽기, 데이터베이스에서 데이터 로드, 웹 API와 같은 네트워크 소스와의 상호 작용 등 몇 가지 주요 범주로 나뉜다.
텍스트 형식의 데이터 읽기 및 쓰기
Python은 파일과의 상호작용을 위한 간단한 구문, 직관적인 데이터 구조, 그리고 tuple packing과 unpacking과 같은 편리한 특징으로 인해 텍스트와 파일 머깅에서 사랑받는 언어가 되었다. Panda는 DataFrame 객체로서 표식 데이터를 읽는 많은 기능을 가지고 있다. read_csv와 read_table이 당신이 가장 많이 사용하게 될 것 같지만, 그것들의 요약이 있다.텍스트 데이터를 데이터 프레임으로 변환하기 위한 이 기능의 메커니즘에 대해 개괄적으로 설명하겠다. 이러한 기능에 대한 옵션은 몇 가지 범주로 구분된다. 유형 추론은 이러한 함수의 더 중요한 특징 중 하나이다. 즉, 숫자, 정수, 부울 또는 문자열 열을 지정할 필요가 없다. 그러나, 처리 날짜와 다른 사용자 정의 유형은 조금 더 많은 노력을 필요로 한다.
• 인덱싱: 하나 이상의 열을 반환된 DataFrame으로 처리할 수 있으며, 파일, 사용자로부터 열 이름을 가져올지 여부를 결정할 수 있다.
• 유형 추론 및 데이터 변환: 사용자 정의 값 변환 및 누락된 값 마커의 사용자 정의 목록을 포함한다.
• Datetime 구문 분석: 여러 열에 걸쳐 분산된 날짜 및 시간 정보를 결과의 단일 열에 결합하는 기능을 포함한다.
• 반복: 매우 큰 파일의 덩어리를 반복하는 지원
• Uncan 데이터 문제: 행 건너뛰기, 바닥글, 설명 또는 쉼표로 구분된 수천 개의 숫자 데이터 같은 사소한 것경우에 따라, 테이블에는 필드를 구분하기 위해 화이트 스페이스나 다른 패턴을 사용하여 고정된 구분 기호가 없을 수 있다. 이 경우 read_table의 구분 기호로 정규식을 전달할 수 있다. 다음과 같은 텍스트 파일을 고려하십시오. 손으로 몇 가지 망치를 할 수 있는 반면, 이 경우 필드는 가변적인 화이트 스페이스 양으로 구분된다. 이는 정규식 \s+로 표현할 수 있으므로, 데이터 행 수보다 열 이름이 하나 적었기 때문에 read_table은 첫 번째 열이 이 특별한 경우 DataFrame의 인덱스가 되어야 한다고 주장한다. 파서 함수에는 발생하는 다양한 예외 파일 형식을 처리하는 데 도움이 되는 많은 추가 인수가 있다(표 6-2 참조). 예를 들어, 파일의 첫 번째, 세 번째 및 네 번째 행을 건너뛸 수 있다. 누락된 값을 처리하는 것은 파일 구문 분석 프로세스의 중요하고 자주 뉘앙스되는 부분이다. 누락된 데이터는 일반적으로 존재하지 않거나(빈 문자열) 일부 보초 값으로 표시된다.
기본적으로 판다는 NA, -1.#와 같이 일반적으로 발생하는 보초 세트를 사용한다.IND 및 NULL: Pieces에서 텍스트 파일 읽기 매우 큰 파일을 처리하거나 큰 파일을 올바르게 처리하기 위한 올바른 인수 집합을 파악할 때, 파일의 작은 조각에서만 읽거나 파일의 작은 덩어리를 통해 반복할 수 있다. read_csv에 의해 반환되는 TextParser 객체를 사용하면 청크 크기에 따라 파일의 부분을 반복할 수 있다. 예를 들어, 우리는 ex6.csv를 반복해서 'key' 열에 값 카운트를 집계할 수 있다. TextParser는 또한 임의 크기의 조각을 읽을 수 있는 get_chunk 방법을 갖추고 있다. 텍스트 형식에 데이터 쓰기를 구분된 형식으로 내보낼 수도 있다. 위에서 읽은 CSV 파일 중 하나를 고려해보자. 더 복잡하거나 고정된 다중 문자 구분 기호가 있는 파일의 경우, csv 모듈을 사용할 수 없을 것이다. 그런 경우에는 문자열의 분할 방법이나 정규식 방법인 r.split을 사용하여 선 분할 및 기타 정리를 해야 할 것이다. 구분된 파일을 수동으로 쓰려면 csv.writer를 사용하십시오. 쓰기 가능한 오픈 파일 오브젝트와 csv.reader와 동일한 방언 및 포맷 옵션을 받아들인다.
JSON Data JSON은 웹 브라우저와 다른 응용프로그램 간에 HTTP 요청에 의한 데이터 전송을 위한 표준 포맷 중 하나가 되었다. CSV와 같은 표 문자 형식보다 훨씬 유연한 데이터 형식이다. 예를 들어, JSON은 null 값 null과 일부 다른 뉘앙스를 제외하고 거의 유효한 Python 코드다. 기본 유형은 객체, 배열, 문자열, 숫자, 부고 및 null이다. 물체의 모든 키는 문자열임에 틀림없다. JSON 데이터를 읽고 쓸 수 있는 Python 라이브러리가 몇 개 있다. 파이썬 표준 도서관으로 만들어졌기 때문에 나는 여기서 json을 사용할 것이다. JSON 문자열을 Python 양식으로 변환하려면 JSON 객체나 객체 리스트를 DataFrame 또는 기타 데이터 구조로 변환하여 분석하는 방법은 당신에게 달려있다. 편리하게 JSON 객체 목록을 DataFrame 생성자에게 전달하고 데이터 필드의 하위 집합을 선택할 수 있다. JSON 데이터를 읽고 처리하는 확장된 예는 다음 장의 USDA Food Database를 참조하십시오.
'IT의 이해' 카테고리의 다른 글
MongoDB에서 데이터 저장 및 로드 (0) 2019.11.12 XML 및 HTML (0) 2019.11.12 히스토그램을 계산하기 (0) 2019.11.12 DataFrame의 구성 (0) 2019.11.12 NumPy 중심 어플리케이션 응용 (0) 2019.11.12