일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 데이터분석
- GROUPBY
- 머신러닝
- PostgreSQL
- 다중 JOIN
- airflow.cfg
- 그로스해킹
- hackerrank
- 데이터시각화
- Oracle
- SQLite
- pandas
- SUM
- seaborn
- Round
- matplotlib
- not in
- 프로그래머스
- MySQL
- SQL
- Limit
- airflow 설치
- join
- solvesql
- having
- 결측값
- TRUNCATE
- 파이썬
- 데이터리안 웨비나
- 전처리
Archives
- Today
- Total
Milky's note
[K-Digital] 자주쓰이는 pandas 정리 본문
판다스 요약 정리
1. 결측값
# 라이브러리를 불러오기
import pandas as pd
import numpy as np
# 결측값 확인
df.isnull()
# 컬럼별로 결측값 갯수 확인
df.isnull().sum()
# null값이 하나라도 있으면 출력
df[df.isnull().any(axis=1)]
# 결측값 삭제 (행)
df.dropna()
# 결측값 삭제 (열)
df.dropna(axis=1)
# 결측값 채우기(값)
df.fillna('값')
# 결측값 채우기(뒤의 값)
df.fillna(method='bfill')
# 결측값 채우기(앞의 값)
df.fillna(method='ffill')
# 결측값 채우기(평균) -> 숫자형 타입 컬럼만 가능
df.fillna(df.mean())
2. 데이터 타입 변경
# 데이터 컬럼 타입 변경
df['컬럼'].astype(int)
# 데이터 타입 변경(dic 형태)
df.astype({'컬럼' : 'datatype'})
# datetime 데이터 타입 변경
df['컬럼'] = pd.to_datetime(df['컬럼'], format="%y-%m-%d")
3. 데이터 프레임 컬럼 추가, 삭제
# 컬럼의 추가는 df에 컬럼 이름을 만들어준 뒤 넣고 싶은 값들을 대입
df['컬럼'] = 추가할 컬럼 리스트 혹은 연산
# 컬럼(시리즈)들의 연산이 가능
df['f'] = df['a'] + df['b']
# 컬럼 삭제
df.drop(['컬럼'], axis=1)
# index를 통한 컬럼 삭제
df.drop(df.index[:4])
4. 함수 생성(apply, map)
# 함수 생성 후 적용(apply)
def function(param):
..
..
return result
df['컬럼'].apply(function)
# map 적용(apply 보단 쉽게, 람다함수도 가능)
map = {'a': 'b'}
df['컬럼'].map(map)
# 람다함수 적용
df['컬럼'].map(lambda x : x+1)
5. 데이터 프레임 간의 결합
# concate
pd.concat([df1,df2]) # 행 기준 결합
pd.concat([df1,df2], axis=1) # 열 기준 결합
# merge
# sql문의 join처럼 사용이 가능, how의 옵션은 left, right, outer, inner 등이 있음
# on은 기준이 되는 컬럼
pd.merge(df1, df2, how='left', on='컬럼')
# 다음과 같이도 사용 가능
pd.merge(df1, df2, left_on='컬럼', right_index=True)
6. group by
# group by는 연산 함수 없이는 사용하는 의미가 없음
# 컬럼1= group by로 정렬할 컬럼
# 컬럼2= 연산을 할 컬럼
df.groupby(by=['컬럼1'])['컬럼2'].sum()
# by는 생략이 가능
df.groupby('컬럼1')['컬럼2'].sum()
# 여러가지 연산도 한 번에 가능
df.groupby('컬럼1')['컬럼2'].agg([sum,len])
7. pivot table
pd.pivot_table(df, value='컬럼', index=['컬럼'], columns='컬럼')
# 파라미터들은 생략하고 순서에 맞게 컬럼을 써주어도 가능
# 데이터프레임 기준으로 pivot table도 생성 가능
df.pivot(index=['컬럼'], columns='컬럼')
8. index 재설정
df.reset_index()
df.reset_index(inplace=True)
# 인덱스를 새롭게 설정해줌
# 위 방식을 사용하면 기존의 index가 새로운 컬럼으로 생성이 됨
# 단순한 숫자 index를 설정하려면 아래의 방식이 깔끔하게 설정됨
df.index=range(0, len(df))
# 문자형 컬럼을 index로 설정
df.set_index('컬럼')
9. 데이터 값이 있는 지 확인
# 데이터 프레임이나 컬럼에 해당 값이 있는 지 확인 (완전 일치)
df.isin(['값', '값', '깂'])
df['컬럼'].isin(['값', '값', '깂'])
# 찾으려는 값이 완전 일치하지 않아도 sql문의 like처럼 찾을 수 있음
df['컬럼'].str.contains("문자열")
# query 함수 : 조건에 맞는 데이터를 보려고 할 때 사용
# df[df["컬럼"] == '값'] 과 같은 형태로 사용할 때보다 타이핑 수도 적고, 속도도 더 빠름
df.query("컬럼 == '값'")
기타
# 데이터 프레임으로 데이터 불러올 때 숫자컬럼 천단위 컴마 제거
df = pd.read_csv('파일', thousands=',')
# 데이터 프레임으로 데이터 불러올 때 맨 위 행 제거
df = pd.read_csv('파일', skiprows=[0])
# 95 백분위수 구하기
# quantile(0,95)를 가지는 수
# 기본 = 2사분위수 = median()
df['컬럼'].quantitle()
# quantitle(0) = 최소 = min()
df['컬럼'].quantitle(0)
# quantitle(1) = 최대 = max()
df['컬럼'].quantitle(1)
'Python > 요약 정리' 카테고리의 다른 글
[Pandas] 데이터프레임 groupby로 연산된 컬럼 추가 (transform) (0) | 2023.11.13 |
---|---|
[Python] timedelta(months=n) (2) | 2023.11.13 |
[K-Digital] Seaborn (0) | 2022.05.18 |
[K-Digital] Python 기초 문법 - Data Type (0) | 2022.05.18 |
[Part 2] 시각화-area plot, pie chart (0) | 2022.02.13 |
Comments