ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • DataFrame 시리즈 Permering
    IT의 이해 2019. 11. 12. 15:33

    축 인덱스 이름 바꾸기
    시리즈의 값과 마찬가지로 축 라벨은 기능이나 어떤 형태의 매핑에 의해 유사하게 변환되어 다르게 라벨이 지정된 새 객체를 생성할 수 있다. 축은 또한 새로운 데이터 구조를 만들지 않고 제 자리에서 수정할 수 있다.

    디스커버리징 및 빈닝
    연속적인 데이터는 종종 분석을 위해 "빈"으로 분리되거나 분리된다. 스터디에서 사용자 그룹에 대한 데이터를 가지고 있으며 이들을 별개의 연령 버킷으로 그룹화하려고 한다고 가정해 보십시오. 이것들을 18~25, 26~35, 35~60, 그리고 마지막으로 60세 이상의 빈으로 나누자. 그러기 위해서는 판다들의 기능인 컷(cut)을 판다가 반환하는 물체는 특별한 범주형 물체다. 빈 이름을 나타내는 문자열 배열처럼 처리할 수 있으며, 내부에는 레이블 속성의 기간 데이터에 대한 라벨링과 함께 구분된 범주 이름을 나타내는 수준 배열이 포함되어 있다. 간격에 대한 수학적 표기법과 일치하는 괄호는 면은 열려 있는 반면 사각형 브래킷은 닫혀 있다는 것을 의미한다(포함). 오른쪽을 통과하면 닫힌 쪽을 변경할 수 있음. 명시적 빈 가장자리 대신 정수 빈 수를 잘라내면 데이터의 최소값과 최대값을 기준으로 동일한 길이의 빈을 계산한다. 일부 균일하게 분포된 데이터가 4번째 데이터로 분할된 경우를 생각해보자: 밀접하게 관련된 함수 qcut는 샘플 정량체에 기반한 데이터를 빈으로 한다. 데이터의 분포에 따라, 컷을 사용하면 일반적으로 각 빈에 동일한 수의 데이터 포인트가 생기지 않는다. qcut은 대신 샘플 quantiles를 사용하므로 정의상 대략 같은 크기의 빈을 얻을 수 있다.

    특이점 탐지 및 필터링
    특이치를 필터링하거나 변환하는 것은 주로 어레이 운영의 적용에 관한 사항이다. 일반적으로 분산된 일부 데이터가 포함된 데이터 프레임 고려: 값이 3 또는 -3을 초과하는 모든 행을 선택하려면 부울 DataFrame: 값은 이러한 기준에 따라 쉽게 설정할 수 있다. 다음은 -3 ~ 3 사이의 간격 밖에 있는 값을 마개하는 코드 입니다.

     

    관류 및 무작위 샘플링 샘플링
    DataFrame에서 시리즈 또는 행을 Permering(임의 순서 변경)하는 것은 numpy.random을 사용하여 쉽게 수행할 수 있다.퍼머레이션 기능 퍼머할 축의 길이와 함께 퍼머레이션을 호출하면 다음과 같은 새로운 순서를 나타내는 정수 배열이 생성된다. 교체하지 않고 임의의 하위 집합을 선택하기 위해, 한 가지 방법은 퍼무션을 통해 반환되는 어레이의 첫 번째 k 요소를 잘라내는 것이다. 여기서 k는 원하는 하위 집합 크기입니다. 교체 없이 샘플링하는 것이 훨씬 더 효율적이지만, 이것은 쉽게 구할 수 있는 도구를 사용하는 쉬운 전략이다. 교체가 가능한 샘플을 생성하려면 np.random.randint를 사용하여 랜덤 정수를 그리는 것이 가장 빠른 방법이다.

    계산 표시기/더미 변수
    통계 모델링 또는 기계 학습 애플리케이션의 또 다른 변환 유형은 범주형 변수를 "더미" 또는 "지표자" 매트릭스로 변환하는 것이다. DataFrame의 열에 k가 구별되는 값이 있다면 1과 0이 모두 들어 있는 k 열이 포함된 행렬이나 DataFrame을 도출할 수 있다. 팬더는 직접 고안하는 것이 어렵지는 않지만 이를 위한 get_dummies 기능을 가지고 있다. 이전 예제 DataFrame으로 돌아가 봅시다. 경우에 따라 DataFrame 표시기의 열에 접두사를 추가하여 다른 데이터와 병합할 수 있다. get_dummies는 다음과 같은 작업에 대한 접두사 인수를 가지고 있다. DataFrame의 행이 여러 범주에 속하는 경우, 상황은 좀 더 복잡하다. 이 책의 앞부분부터 MovieLens 1M 데이터 세트로 돌아가 봅시다. 장르별로 지표 변수를 추가하면 약간의 다툼이 필요하다. 첫째, 데이터 세트에서 고유한 장르 목록을 추출한다. 훨씬 더 큰 데이터의 경우, 다중 멤버쉽으로 지표 변수를 구성하는 방법은 특별히 빠르지 않다. DataFrame의 내실을 활용하는 하위 수준의 기능은 확실히 작성될 수 있다. 통계적 적용을 위한 유용한 방법은 get_dummies를 절단 같은 디크레틱스 기능과 결합하는 것이다.

     

    문자열 조작
    Python은 문자열과 텍스트 처리에 사용하기 쉽기 때문에 오랫동안 인기 있는 데이터 밍잉어였다. 대부분의 텍스트 작업은 문자열 객체의 내장 메서드로 간단하게 이루어진다. 보다 복잡한 패턴 매칭과 텍스트 조작을 위해서는 규칙적인 표현이 필요할 수 있다. 판다는 당신이 전체 데이터 배열에 문자열과 규칙적인 표현을 간결하게 적용할 수 있게 함으로써 누락된 데이터의 번거로움을 추가로 처리할 수 있게 함으로써 혼합물을 더한다.


    문자열 객체 방법
    많은 문자열 혼합 및 스크립팅 애플리케이션에서 내장 문자열 방법은 충분하다. 예를 들어 쉼표로 구분된 문자열을 분할하여 분할할 수 있다. 정규식은 텍스트에서 문자열 패턴을 검색하거나 일치시킬 수 있는 유연한 방법을 제공한다. 일반적으로 레게스라고 불리는 하나의 표현은 정규 표현 언어에 따라 형성된 문자열이다. Python의 내장 re 모듈은 문자열에 규칙적인 표현을 적용하는 것을 담당한다. 나는 여기에서 그것의 사용에 대한 많은 예를 제시하겠다. 규칙적인 표현을 쓰는 기술은 그 자체로 하나의 장이 될 수 있기 때문에 책의 범위를 벗어난다. 인터넷에는 제드 쇼의 학습 레직스 더 하드웨이와 같은 훌륭한 튜토리얼과 참고문헌이 많이 있다. 리 모듈 기능은 패턴 매칭, 대체 및 분할의 세 가지 범주로 나뉜다. 당연히 이것들은 모두 연관되어 있다; regex는 텍스트에서 찾을 수 있는 패턴을 설명하고, 그 후에 많은 용도로 사용될 수 있다. 간단한 예를 보자: 화이트 스페이스 문자(탭, 공백 및 새 라인)의 변수 숫자로 문자열을 분할하고 싶다고 가정하자. 하나 이상의 화이트 스페이스 문자를 설명하는 regex는 \s+: r.split('\s+', 텍스트)를 호출할 때 정규식이 먼저 편찬된 다음 통과된 텍스트에 그 분할 방법이 호출된다. re.compile로 regex를 직접 컴파일하여 재사용 가능한 regex 개체를 만들 수 있다. r.compile을 사용하여 regex 개체를 생성하는 것은 많은 문자열에 동일한 식을 적용하려는 경우 매우 권장된다. 그렇게 하면 CPU 주기를 절약할 수 있다. 일치 및 검색은 findall과 밀접한 관련이 있다. findall은 모든 일치 항목을 문자열로 반환하는 반면, 검색은 첫 번째 일치 항목만 반환한다. 좀 더 엄격하게, 문자열의 시작 부분에서만 일치한다. 덜 사소한 예로서 텍스트 블록과 대부분의 이메일 주소를 식별할 수 있는 정규식을 고려해 보자: 검색은 텍스트의 첫 번째 전자 메일 주소에 대한 특수 일치 개체를 반환한다. 위의 regex의 경우, 일치 객체는 문자열에서 패턴의 시작 및 종료 위치만 알려줄 수 있다. 이메일 주소를 찾고 동시에 각 주소를 사용자 이름, 도메인 이름 및 도메인 접미사라는 세 가지 구성 요소로 나누기를 원했다고 가정해 보십시오. 이렇게 하려면 분할할 패턴의 부분 주위에 괄호를 넣으십시오.


    판다의 직물화된 끈 기능
    분석을 위해 지저분한 데이터 세트를 정리하는 것은 종종 많은 스트링 머깅과 정규화가 필요하다. 설상가상으로 문자열을 포함하는 열에 누락된 데이터가 있을 수 있다. data.map을 사용하여 각 값에 문자열 및 정규식 방법을 적용할 수 있지만(양다 또는 다른 기능을 전달) NA에서 실패한다. 이에 대처하기 위해 Series는 NA 값을 생략하는 문자열 연산을 위한 간결한 방법을 가지고 있다. 예를 들어, 각 전자 메일 주소에 'gmail'이 포함되어 있는지 여부를 Series의 Str 속성을 통해 확인할 수 있다. 미국 농무부는 식품 영양소의 정보를 데이터베이스로 제공한다. 영국 해커 애슐리 윌리엄스는 이 데이터베이스의 버전을 JSON 포맷으로 만들었다. 기록은 다음과 같다. 각 식품에는 영양소와 부분 크기의 두 가지 목록과 함께 여러 가지 식별 특성이 있다. 이러한 형태의 데이터를 갖는 것은 특별히 분석이 용이하지 않기 때문에 우리는 데이터를 더 나은 형태로 짜내기 위해 약간의 작업을 할 필요가 있다. 위의 링크에서 데이터를 다운로드하고 추출한 후, 원하는 JSON 라이브러리와 함께 Python에 로드할 수 있다. 내장 Python json 모듈을 사용할 겁니다. 이제, 모든 영양소 데이터에 대한 약간의 분석을 하기 위해, 각각의 음식에 대한 영양소를 하나의 큰 테이블에 모으는 것이 가장 쉽다. 그러기 위해서는 몇 가지 단계를 밟아야 한다. 먼저, 각 식품 영양소 목록을 DataFrame으로 변환하고, 식품 ID에 대한 열을 추가하고, DataFrame을 목록에 추가한다. 

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

    파이썬 프로그래밍 언어  (0) 2019.11.19
    Python Visualization Tool 생태계  (0) 2019.11.14
    오버랩과 데이터 결합  (0) 2019.11.12
    MongoDB에서 데이터 저장 및 로드  (0) 2019.11.12
    XML 및 HTML  (0) 2019.11.12

    댓글

Designed by Tistory.