티스토리 뷰

※ 오늘의 목표 !!
heatmap, melt, 정규표현식
세 개만 제대로 알자!! (내일되어 까먹어도 됨! 또 보면 되니까 !)
#1) sns.heatmap 알아보기
heatmap이란? 다양한 강도, 색상으로 데이터 범위를 시각화해주는 도구. 상관관계 시각화.
| parameters | 설명 | 사용방법 |
| annot = | 수치표시 | annot=True : 수치표시를 합니다. |
| annot_kws= | 수치표시 사이즈 | annot_kws={'size': 20} : 크기 20으로 수치표시를 합니다. |
| cmap= | 색상변경 | cmap="color" : 컬러는 검색해보고 변경해보면 된다. https://matplotlib.org/3.2.1/tutorials/colors/colormaps.html |
| vmin= vmax= |
최소, 최대 기준점 변경 |
색상이 나타날 수치바의 범위를 조절 |
| fmt='d' | 정수형태로 숫자 표시 |
fmt='d' : integer format으로 숫자를 입력하라는 뜻 |
# seaborn의 예시
- 사용된 seaborn 구성요소 : set_theme(), load_dataset(), heatmap()
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_theme()
# Load the example flights dataset and convert to long-form
flights_long = sns.load_dataset("flights")
flights = flights_long.pivot("month", "year", "passengers")
# Draw a heatmap with the numeric values in each cell
f, ax = plt.subplots(figsize=(9, 6))
sns.heatmap(flights, annot=True, fmt="d", linewidths=.5, ax=ax)

#2) melt와 tidy data
(a).melt(
id_vars= (b),
var_name = (c),
value_name = (d)
)
| parameters | 설명 | 사용방법 |
| id_vars = | 식별자 변수 | 튜플, 목록 등 (선택사항) |
| value_vars= | 피벗을 해제할 열 | 지정하지 않으면 id_vars가 아닌 모든 열을 사용합니다. |
| var_name= | '변수'열에 사용할 이름 |
None이면 본래 컬럼 이름을 사용합니다. |
| value_name= | '값'열에 사용할 이름 | |
| ignore_index= | 인덱스 설정 | ignore_index=True : 원래 인덱스가 무시됩니다. ignore_index=False : 원래 인덱스가 유지됩니다. |
참고 : pandas API (https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.melt.html)
#3) 정규표현식 (점프 투 파이썬)
메타문자란?
: 원래 그 문자가 가진 뜻이 아닌 특별한 용도로 사용하는 문자.
| . ^ $ * + ? { } [ ] \ | ( ) |
| 메타문자 | 설명 | 비고 | |
| 1 | 문자 클래스 [ ] | 문자 클래스[ ] 안에는 어떤 메타문자도 사용할 수 있다. ※ 주의 (^) : 반대(not)라는 의미를 가짐. ex) [abc] => 'a' 매치, 'blue' 매치, 'dog' 매치되지 않음 ex) [a-zA-Z] => 모든 알파벳이 있는 경우 매치됨. |
|
| 자주 사용하는 문자클래스 |
\d : [0-9]와 동일 \D : [^0-9]와 동일 \s : [ \t\n\r\f\v]와 동일 (whitespace와 매치) \S : [^ \t\n\r\f\v]와 동일 \w : [a-zA-Z0-9_]와 동일 (모든 문자+숫자와 매치) \W : [^a-zA-Z0-9_]와 동일 |
대문자로 사용된 것은 소문자의 반대 |
|
| 2 | dot(.) | 줄바꿈 문자인 \n을 제외한 모든 문자와 매치. ex) a.b => a와b사이에 어떤 문자가 있어도 매치됨. 단, abc는 안됨. ex) a[.]b => a.b와 매치됨. |
|
| 3-1 | 반복(*) | * 바로 앞에 있는 문자가 무한대로 반복될 수 있다는 의미. ex) ca*t => a가 0~무한대로 반복되어도 매치됨. |
|
| 3-2 | 반복(+) | + 는 최소 1번 이상 반복될 때 사용된다. ex) ca+t => a가 한 번 이상 반복되어야 매치됨. |
0번이면 매치되지 않음. |
| 3-3 | 반복 ({m,n}, ?) | { } 메타문자를 사용하면 반복 횟수를 고정할 수 있다. {m,n} : m부터 n까지 반복 (한 가지 기준만 작성해도 작동됨) ※ ? : {0,1}을 의미하며, 있어도 되고 없어도 된다는 뜻이다. ex) ca{2}t => caat ex) ca{2,5}t => caat(0), caaaaat(0), cat(x) |
{1,}은 +와 동일 {0,}은 *과 동일 {m,n}보다 *과 +쓰는게 나음. |
| 4 | A | B | or와 동일한 의미로 A 또는 B라는 뜻. | |
| 5 | ^문자열 | 문자열의 맨 처음과 일치할 경우 match 객체 리턴, 아니면 None re.MULTILINE 사용 => 여러 줄의 문자열일 경우 각 줄의 처음과 일치. |
^ 또는 $를 문자 그 자체로 매치하고 싶은 경우에는 \^, \$로 사용하면 된다. |
| 6 | 문자열$ | 문자열의 맨 끝과 매치함을 의미. ^와 반대의 의미. | |
| 7 | \A | 문자열의 처음과 매치됨을 의미 ※ ^와 동일한 의미이지만 re.MULTILINE을 사용할 경우 의미가 다름. re.MULTILINE 사용 => 줄과 상관없이 전체 문자열의 처음과 매치 |
|
| 8 | \Z | 문자열의 맨 끝과 매치됨을 의미 그 외 위와 같음. |
|
| 9 | \b | 단어 구분자(word boundary) 보통 단어는 whitespace에 의해 구분된다. ex) \bcat\b 는 앞 뒤가 whitespace로 구분된 cat이라는 단어와 매치. ※ 백스페이스를 의미하는 \b와 혼동될 수 있으므로 r'\bcat\b'처럼 raw string임을 알려주는 기호 r을 반드시 붙여야 함. |
|
| 10 | \B | \b와 반대로 whitespace로 구분된 단어가 아닌 경우에만 매치됨. whitespace가 하나라도 있을 경우에는 매치가 되지 않음. |
<문자열 검색> 출처 : https://wikidocs.net/4308'
| ** | re 모듈 | 파이썬을 설치할 때 자동으로 설치되는 표준 라이브러리. ex) import re p = re.comile('ab*') |
패턴이란? 정규식을 컴파일한 결과. |
| Method | 목적 | ||
| 1 | match() | 문자열의 처음부터 정규식과 매치되는지 조사한다. | 부합할 경우 match 객체 리턴, 아닐 경우 None 리턴 |
| 2 | search() | 문자열 전체를 검색하여 정규식과 매치되는지 조사한다. | |
| 3 | findall() | 정규식과 매치되는 모든 문자열을 리스트로 리턴한다. | |
| 4 | finditer() | 정규식과 매치되는 모든 문자열을 반복 가능한 객체로 리턴한다. |
-내용이 더 많지만 다음에 더 자세히 알아보는 걸로,,,
#4) 다시 한 번 익히는 코드
| 코드 | 용도 | 설명 | 예시 | |
| 1 | dropna() | 결측치 제거 | 괄호 안에 ?? | |
| 2 | drop() | 제거 | 컬럼제거시 .drop(columns="컬럼명") | |
| 3 | nunique() | 유일값의 수 |
'TIL & WIL > Python' 카테고리의 다른 글
| 8주차 수요일 TIL(2). heatmap, style.background_gradient() / concat(), pd.merge (0) | 2023.02.09 |
|---|---|
| 8주차 수요일 TIL(1). 데이터전처리 / crosstab, pivot_table, groupby (0) | 2023.02.08 |
| 8주차 월요일 TIL. (0) | 2023.02.06 |
| 7주차 WIL. matplotlib의 기본 (0) | 2023.02.02 |
| 7주차 화요일 TIL. plot() / crosstab() / loc[] / str.contains / isin / pivot_table / groupby / merge (0) | 2023.01.31 |