032 pandas 에서 자주 사용 하 는 함수

본 고 는 주로 pandas 상용 함수 로 구체 적 으로 다음 과 같이 소개 한다.
1 import 문장import pandas as pd import numpy as np import matplotlib.pyplot as plt import datetime import re
|
2 파일 읽 기
df = pd.read_csv (path = 'file. csv') 인자: header = None 기본 열 이름 으로 0, 1, 2, 3... names = [A ',' B ',' C '...] 사용자 정의 열 이름 indexcol = A '| [A', 'B'...] 색인 열 에 이름 을 지정 합 니 다. 다 중 색인 이 라면 list skiprows = [0, 1, 2] 건 너 뛰 어야 할 줄 번 호 를 보 낼 수 있 습 니 다. 파일 헤더 0 부터 skipfooter 는 파일 끝 에서 nrows = N 을 읽 을 줄 수 있 습 니 다. 앞의 N 줄 chunksize = M 은 교체 형식 TextFileReader 를 되 돌려 줍 니 다. M 줄 마다 교체 하고 데이터 가 큰 메모 리 를 사용 할 때 sep = ':' 데이터 구분 기본 값 은 '입 니 다.' 파일 에 따라 적당 한 구분 자 를 선택 하고 파 라 메 터 를 지정 하지 않 으 면 skip 를 자동 으로 해석 합 니 다.blank_lines = False 기본 값 은 True 입 니 다. 빈 줄 을 건 너 뛰 고 건 너 뛰 지 않 으 려 면 NaN converters = {'col 1' 을 채 웁 니 다. func} 은 선택 한 열 에 함수 func 변환 을 사용 합 니 다. 보통 번 호 를 나타 내 는 열 을 사용 합 니 다 (int 로 변환 하지 않도록 합 니 다)
dfjs = pd.read_json ('file. json') 은 json 형식 문자열 dfex = pd. read 를 입력 할 수 있 습 니 다.excel ('file. xls', sheetname = [0, 1..]) 여러 sheet 페이지 를 읽 고 여러 df 사전 을 되 돌려 줍 니 다.
3 데이터 전처리
df. duplicated () 각 줄 이 이전 줄 의 중복 줄 인지 되 돌려 줍 니 다 df. dropduplicates () 는 중복 줄 을 삭제 합 니 다. 열 에 따라 필터 가 필요 하 다 면 인자 선택 [col1 ',' col2 ',...] df. fillna (0) 는 실수 0 으로 na df. dropna () axis = 0 | 1 0 - index 1 - column how =' all '|' any 'all - 모두 NA 로 any 를 삭제 합 니 다. - NA 만 있 으 면 del df [' col1 '] 를 모두 삭제 합 니 다. df. drop ([' col1 ',..], ax = 1) 은 지 정 된 열 을 삭제 하고 줄 df. column = col column 을 삭제 할 수 있 습 니 다.lst 열 이름 df. rename (index = {'row 1': 'A'} 을 다시 만 들 고 색인 이름과 열 이름 columns = {'col 1': '11'} df. replace (dict) 를 df 값 으로 바 꿉 니 다. 앞 뒤 값 은 사전 표 로 바 꿀 수 있 습 니 다. {1: 'A', '2': 'B'}
def get_digits (str): m = re. match (r '(\ d + (. \ d +)?), str. decode (' utf - 8 ') if m is not None: return float (m. groups () [0]) else: return 0 df. application (get digits) DataFrame. application, 소수 부분 만 가 져 오고 특정한 열 이나 행 df [' col1 ']. map (func) Series. map 를 선택 하여 열 에 만 함수 변환 을 할 수 있 습 니 다.
pd. merge (df1, df2, on = 'col 1', how = 'inner', sort = True) 는 두 개의 DataFrame 를 합 쳐 공 유 된 열 에 따라 내부 연결 (교차) 을 하고 outter 는 외부 연결 (집합) 으로 결 과 를 정렬 합 니 다.
pd. merge (df1, df2, left on = 'col1', right on = 'col2') df1 df2 는 공공 열 이름 이 없 기 때문에 합병 은 양쪽 의 참고 열 을 지정 해 야 합 니 다.
pd. concat ([sr1, sr2, sr3,...], axis = 0) 여러 시리즈 가 여러 줄 로 쌓 여 있 습 니 다. 결 과 는 Series pd. concat ([sr1, sr2, sr3,...], axis = 1) 여러 시리즈 가 여러 줄 로 조합 되 어 있 습 니 다. 결 과 는 DataFrame 입 니 다. 색인 을 합 쳐 서 집합 되 지 않 은 위치 에 결 성 된 값 NaN 을 채 웠 습 니 다.
df1.combine_first (df2) df2 데이터 로 df1 의 부족 한 값 NaN 을 보충 합 니 다. df2 에 더 많은 줄 이 있 으 면 함께 보충 합 니 다.
df. stack () 열 은 줄 로 회전 합 니 다. 즉, 열 이름 은 색인 이름 으로 바 뀌 고 원래 색인 은 다 층 색인 으로 바 뀌 었 습 니 다. 결 과 는 다 층 색인 을 가 진 Series 입 니 다. 실제로 데이터 세트 를 길 게 늘 렸 습 니 다.
df. unstack () 은 다 중 색인 이 함 유 된 Series 를 DataFrame 로 변환 합 니 다. 실제 데이터 세트 를 납작 하 게 만 듭 니 다. 만약 에 특정한 열 에 비교적 적은 분류 가 있다 면 이 분 류 를 끌 어 내 서 df. pibot () 은 실제 unstack 의 응용 으로 데이터 세트 를 납작 하 게 만 듭 니 다.
pd.get_dummies (df ['col1'], prefix = 'key') 의 한 열 은 유한 한 값 을 포함 하고 있 으 며, 이러한 값 은 일반적으로 문자열 입 니 다. 예 를 들 어 국가, 비트 맵 의 사상 을 참고 하여 k 개 국가 라 는 열 을 k 열 로 바 꿀 수 있 습 니 다. 각 열 은 0, 1 로 표시 합 니 다.
4 데이터 필터
df. columns 열 이름, Index 형식의 열 집합 df. index 색인 이름 을 되 돌려 주 고 Index 형식의 색인 집합 df. shape 를 tuple 로 되 돌려 주 며, 행 x 열 df. head (n = N) 는 앞의 N 조 df. tail (n = M) 을 되 돌려 준 후 M 조 df. values 값 의 2 차원 배열 을 되 돌려 줍 니 다. numpy. ndarray 대상 으로 df. index DataFrame 의 색인 을 되 돌려 줍 니 다. 색인 은 df. reindex (index =['row1', 'row2', 'row 2',...] columns = ['col1', 'col2',...] 새로운 색인 에 따라 df [m: n] 를 정렬 하고, m ~ n - 1 줄 df [df ['col1'] > 1] 를 선택 하고, 조건 에 만족 하 는 줄 df. query ('col1 > 1') 를 선택 하고, 조건 에 만족 하 는 줄 df. query ('col1 = [v1, v2, v2,...] df. ix [,' col1 '],' col1 '] 을 선택 하고,' df. ix '[' row1 ',' row1 ',' col2 ',' col2 ',' col2 ',' col2 ',', 'col2', 'col2', 'col2', ',' 슬라이스 해서 어떤 열 을 선택 하기 전에(col 2 포함) 의 모든 열 df. loc [m: n] 에서 m ~ n 줄 (추천) df. iloc [m: n] 에서 m ~ n - 1 줄 df. loc [m: n - 1, 'col 1': 'coln'] 에서 mn 줄 의 col1 coln 열 을 가 져 옵 니 다.
sr = df ['col'] 한 열 을 가 져 와 Series sr. values Series 의 값 을 되 돌려 주 고 numpy. ndarray 대상 으로 sr. index Series 의 색인 을 되 돌려 주 며 index 대상 으로 되 돌려 줍 니 다.
5 데이터 연산 과 정렬
df. T DataFrame 은 df1 + df2 를 색인 과 열 에 따라 합 쳐 집 니 다. NaN 은 df1. add (df2, fill value = 0) 를 채 우 고 df1. add / sub / ml / div 사 칙 연산 방법 df - sr DataFrame 의 모든 줄 을 다른 값 으로 채 우 는 동시에 Series df * N 의 모든 요 소 를 N df. add (sr, axis = 0) DataFrame 의 모든 열 을 빼 고 Series df * N 의 모든 요 소 를 곱 합 니 다.
sr. order () 시리즈 오름차 순 으로 df. sort index (aixs = 0, ascending = True) 를 배열 하고 줄 색인 오름차 순 으로 df. sort index (by = ['col1', 'col2'...]) 를 지정 한 열 에 따라 우선 순위 df. rank () 를 계산 합 니 다.
6 수학 통계
sr. unique Series 는 sr. value counts () Series 의 통계 빈 도 를 무 겁 게 하고 큰 것 부터 작은 것 까지 정렬 합 니 다. DataFrame 은 이 방법 이 없습니다 sr. describe () 는 기본 통 계량 과 분 위수 로 돌아 갑 니 다.
df. describe () 는 각 열 에 따라 기본 통 계량 과 분 위수 df. count () 를 되 돌려 비 NA 가치 수량 df. max () 를 구하 고 최대 치 df. min () 을 구하 고 최대 치 df. sum (axis = 0) 을 구하 고 각 열 에 따라 평균 치 df. media () 를 구하 고 중위 df. var () 를 구하 고 표준 차 df. mad () 를 구하 고 평균 값 에 따라 평균 절대 금 리 차 df. cumsum () 을 계산 하여 누적 과 sr1. corr (sr2) 를 구한다.상관 계수 df. cov () 구 협 방 차 행렬 df1. corrwith (df2) 구 상관 계수
pd. cut (array 1, bins) 1 차원 데이터 의 구간 분포 pd. qcut (array 1, 4) 은 지 정 된 자릿수 에 따라 구간 을 구분 하고 4 는 사용자 정의 자릿수 목록 으로 대체 할 수 있 습 니 다.
df ['col1']. groupby (df ['col2']) 열 1 은 열 2 로 나 누 었 습 니 다. 즉, 열 2 는 key df. groupby ('col1') DataFrame 은 열 1 에 따라 grouped. aggreagte (func) 로 나 누 어 전 송 된 함수 에 따라 grouped. aggregate ([f1, f2,...]) 여러 함수 에 따라 집합 하여 표 현 된 다 열 로 함수 이름 은 grouped. agregate ([('f1 name', f1), ('f2 name', f2)]) 입 니 다.취 합 된 열 이름 을 바 꾼 grouped. aggregate ({'col 1': f1, 'col 2': f2,...}) 는 서로 다른 열 에 서로 다른 함수 의 취 합 을 적용 합 니 다. 함수 도 여러 개 일 수 있 습 니 다.
df. pivot table (['col 1', 'col 2'], rows = ['row 1', 'row 2'], aggfuc = [np. mean, np. sum] fill value = 0, margins = True) row 1, row 2 대 col 1, col2 에 따라 그룹 집합 을 하고 집합 방법 은 여러 가 지 를 지정 할 수 있 으 며, 지정 값 으로 결 성 된 값 을 대체 할 수 있 습 니 다.
pd. crosstab (df ['col1'], df ['col2']) 교차 표 로 그룹의 빈 도 를 계산 합 니 다.

좋은 웹페이지 즐겨찾기