일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 등차수열
- 통계학
- maplotlib
- Machine Learning
- 문제풀이
- 재귀함수
- 스터디노트
- python
- SQL
- 파이썬
- 리스트
- 기계학습
- Slicing
- numpy
- 조합
- 순열
- pandas
- pandas filter
- DataFrame
- plt
- 등비수열
- 자료구조
- Folium
- 머신러닝
- barh
- matplotlib
- MacOS
- INSERT
- tree.fit
- pandas 메소드
Archives
- Today
- Total
코딩하는 타코야끼
[스터디 노트] Week5_4일차 [unit14 ~ 21] - EDA(범죄) 본문
728x90
반응형
📍 df.div( )
- Pandas의 div() 함수는 DataFrame 또는 Series에서 요소 간 나눗셈 연산을 수행합니다.
- 이 함수는 두 개의 DataFrame, Series, 또는 단일 숫자 간에 요소 단위의 나눗셈을 가능하게 합니다.
- other: 다른 DataFrame, Series, 또는 scalar 값과 나누기를 수행합니다.
- axis: 연산을 적용할 축을 지정합니다. 'index'(또는 0)는 수직 연산을, 'columns'(또는 1)는 수평 연산을 나타냅니다.
- level: MultiIndex의 경우, 레벨에 따라 연산을 적용하려면 레벨을 지정합니다.
- fill_value: NaN 값을 대체하기 위한 값입니다.
# 강도 검거율 crime_anal_gu["강도검거"] / crime_anal_gu["강도발생"] >>> 구별 강남구 1.076923 강동구 0.928571 강북구 0.800000 관악구 0.894737 광진구 0.545455 구로구 1.300000 노원구 1.500000 . . . 용산구 1.111111 은평구 0.777778 종로구 0.750000 중구 0.875000 중랑구 1.000000 dtype: float64
crime_anal_gu[["강도검거", "살인검거"]].div(crime_anal_gu["강도발생"], axis = 0)
1. 서울시 범죄현황 데이터 최종 정리
col2 = ["강간검거율", "강도검거율", "살인검거율", "절도검거율", "폭력검거율"]
crime_anal_norm["검거"] = np.mean(crime_anal_norm[col2], axis = 1)
crime_anal_norm.head()
2. Seaborn
import matplotlib.pyplot as plt
import seaborn as sns
x = np.linspace(0, 14, 100)
y1 = np.sin(x)
y2 = 2 * np.sin(x + 0.5)
y3 = 3 * np.sin(x + 1.0)
y4 = 4 * np.sin(x + 1.5)
plt.figure(figsize = (8, 5))
plt.plot(x, y1, x, y2, x, y3, x, y4)
plt.show()
sns.set_style("whitegrid") # white, dark 도 있음
plt.figure(figsize = (8, 5))
plt.plot(x, y1, x, y2, x, y3, x, y4)
plt.show()
📍 sns.boxplot( )
- Seaborn은 matplotlib을 기반으로 하는 Python 데이터 시각화 라이브러리입니다.
- 통계적 그래픽을 생성하는데 특화되어 있으며, 다양한 그래픽을 생성하는 강력한 함수들을 제공합니다.
- boxplot() 함수는 Seaborn 라이브러리에서 제공하는 함수 중 하나로, 박스 플롯(또는 상자 수염 그림)을 생성하는 데 사용됩니다.
- 박스 플롯은 데이터의 중앙값, 사분위수, 이상치 등을 한눈에 파악하기 좋게 나타내 줍니다.
- x, y, hue: 데이터셋의 변수를 지정합니다. 데이터를 분할하는 데 사용됩니다. x와 y는 각각 x축과 y축에 대응하는 데이터, hue는 데이터의 하위 그룹을 구분하는 데 사용됩니다.
- data: 입력 데이터를 지정합니다. 일반적으로 pandas DataFrame을 사용합니다.
- order, hue_order: 입력된 순서에 따라 범주형 변수의 레벨을 그립니다.
- orient: 박스 플롯의 방향을 결정합니다('v' 또는 'h'). 대부분의 경우 자동으로 추론되지만, 단일 변수를 그릴 때는 필요합니다.
- color, palette: 박스 플롯의 색상을 지정합니다. color는 모든 요소에 대해 동일한 색상을 지정하고, palette는 다양한 색상을 지정합니다.
- width: 박스의 너비를 결정합니다.
- dodge: hue 변수가 있을 때, 박스를 분리할지 여부를 결정합니다.
- fliersize: 이상치의 마커 크기를 결정합니다.
- linewidth: 라인의 너비를 결정합니다.
- whis: 이상치를 결정하는 비율이나 범위를 설정합니다. 기본적으로 1.5 IQR(Inter-Quartile Range, 사분범위)를 사용합니다.
- ax: matplotlib의 축 객체를 지정합니다. 여러 개의 서브플롯을 그릴 때 유용합니다.
⚡️ boxplot에 컬럼을 지정
plt.figure(figsize = (8, 6))
sns.boxplot(x = "day", y = "total_bill", data = tips)
plt.show()
⚡️ 컬럼을 지정하고 구분을 지을 수 있다.
plt.figure(figsize = (8, 6))
sns.boxplot(x = "day", y = "total_bill", hue = "smoker", data = tips, palette = "Set3")
plt.show()
⚡️swarmplot( )
# swarmplot
plt.figure(figsize = (8, 6))
sns.swarmplot(x = "day", y = "total_bill", data = tips, color = ".5")
plt.show()
📍 sns.lmplot( )
- Seaborn의 lmplot() 함수는 선형 회귀 모델을 만들고 이를 시각화하는 기능을 제공합니다.
- 이 함수는 2차원 산점도를 기반으로 하며, 그 위에 회귀 직선과 95% 신뢰 구간을 표시해줍니다.
- x, y: 데이터셋의 변수를 지정합니다. x축과 y축에 대응하는 데이터입니다.
- data: 입력 데이터를 지정합니다. 일반적으로 pandas DataFrame을 사용합니다.
- hue, col, row: 데이터를 분할하는 데 사용되는 변수를 지정합니다. hue는 색상을 변경하여 하위 그룹을 구분하고, col과 row는 여러 서브플롯을 생성합니다.
- palette: 색상 팔레트를 지정합니다.
- height: 그래프의 높이를 지정합니다.
- aspect: 각 개별 그래프의 가로/세로 비율을 지정합니다.
- markers: 산점도의 마커 모양을 지정합니다.
- fit_reg: 회귀선을 그릴지 여부를 결정합니다. 기본적으로 True입니다.
- ci: 신뢰 구간을 그릴지, 그리고 어느 정도의 신뢰 구간을 그릴지 결정합니다.
- order: 회귀 다항식의 차수를 결정합니다.
- logistic, lowess, robust, logx: 다양한 종류의 회귀를 지정합니다. 기본적으로는 선형 회귀를 그립니다.
- x_jitter, y_jitter: 점들의 위치를 약간 무작위로 바꾸어 데이터의 밀도를 나타내는 데 사용됩니다.
sns.set_style("darkgrid")
sns.lmplot(x = "total_bill", y = "tip", data = tips, hue = "smoker", height = 6)
plt.show()
⚡️ 추가 출력
sns.set_style("darkgrid")
sns.lmplot(x = "x", y = "y", data = anscombe[anscombe.dataset == "II"],
order = 1,
ci = None,
scatter_kws = {"s": 80},
height = 6)
sns.set_style("darkgrid")
sns.lmplot(x = "x", y = "y", data = anscombe[anscombe.dataset == "II"],
order = 2,
ci = None,
scatter_kws = {"s":80},
height = 6)
sns.set_style("darkgrid")
sns.lmplot(x = "x", y = "y", data = anscombe[anscombe.dataset == "III"],
ci = None,
scatter_kws = {"s":80},
height = 6)
📍sns.heatmap( )
- Seaborn의 heatmap( ) 함수는 데이터를 색상으로 인코딩한 2차원 (그래픽) 히트맵을 그리는 데 사용됩니다.
- 이는 변수 간의 상관 관계나 2차원 데이터의 분포 패턴 등을 시각화하는데 매우 유용합니다.
- data: 히트맵으로 그릴 데이터셋을 지정합니다. 일반적으로 pandas DataFrame이나 numpy array를 사용합니다. 이 데이터는 2차원 형태여야 합니다.
- vmin, vmax: 컬러맵의 최소, 최대값을 지정합니다.
- cmap: 컬러맵을 지정합니다. Matplotlib의 컬러맵 이름이나 컬러 객체를 사용할 수 있습니다.
- center: 컬러맵의 중심값을 지정합니다. 이 값이 주어지면 diverging 컬러맵을 사용하게 됩니다.
- robust: 이 값이 True면, 데이터의 이상치를 무시하고 컬러맵을 계산합니다.
- annot: 이 값이 True면, 각 셀에 값이 표시됩니다.
- fmt: 셀에 표시되는 값의 포맷을 지정합니다.
- linewidths: 셀 사이의 선의 너비를 지정합니다.
- linecolor: 셀 사이의 선의 색상을 지정합니다.
- cbar: 컬러 바의 표시 여부를 지정합니다.
- cbar_kws: 컬러 바에 대한 추가 키워드 인수를 지정합니다.
- square: 이 값이 True면, 각 셀이 정사각형이 됩니다.
- mask: 이 값이 True인 위치는 히트맵에서 마스킹(데이터가 표시되지 않음)됩니다.
- ax: matplotlib의 축 객체를 지정합니다. 여러 개의 서브플롯을 그릴 때 유용합니다.
plt.figure(figsize = (8, 6))
sns.heatmap(flights, annot = True, fmt = "d", cmap = "YlGnBu")
plt.show()
📍 sns.pairplot( )
- Seaborn 라이브러리의 한 함수로, 주로 데이터프레임의 여러 변수 간의 쌍별 관계를 시각화하는 데 사용됩니다.
- Seaborn은 Matplotlib 기반의 Python 데이터 시각화 라이브러리로, 통계적 그래픽을 생성하는 데 유용합니다
📎 주요 기능:
- 대각선 상의 히스토그램: 각 변수의 분포를 보여줍니다.
- 대각선 밖의 산점도: 두 변수 간의 관계를 보여줍니다
📎 주요 옵션:
- data: 시각화할 데이터프레임. 대부분의 경우 Pandas 데이터프레임이 사용됩니다.
- hue: 색상으로 구분할 열의 이름. 카테고리형 변수를 기반으로 색상을 구분하게 됩니다.
- palette: 색상 팔레트. 여러 가지 스타일로 색상을 지정할 수 있습니다.
- markers: 각 카테고리에 사용될 마커의 유형을 지정합니다.
- kind: 그래프의 종류를 지정합니다. 'scatter'와 'reg' 중 하나를 선택할 수 있으며, 'reg'는 회귀선을 포함한 산점도를 그립니다.
- diag_kind: 대각선에 표시될 그래프의 종류. 'hist' 또는 'kde' 중 하나를 선택할 수 있습니다. 'kde'는 커널 밀도 추정치를 나타냅니다.
- corner: 대각선 위의 그래프만 표시하려면 True로 설정합니다.
- plot_kws와 diag_kws: 각각 산점도와 대각선 그래프에 대한 추가적인 키워드 인자를 전달하는 데 사용됩니다.
sns.pairplot(iris, hue = "species")
plt.show()
반응형
'zero-base 데이터 취업 스쿨 > 스터디 노트' 카테고리의 다른 글
[스터디 노트] Week6_1일차 [unit1 ~ 13] - EDA(웹데이터) (0) | 2023.08.16 |
---|---|
[스터디 노트] Week5_5일차 [unit22 ~ 32] - EDA(범죄) (2) | 2023.08.16 |
[스터디 노트] Week5_3일차 [unit1 ~ 11] - EDA(범죄) (0) | 2023.08.16 |
[스터디 노트] Week5_2일차 [unit12 ~ 20] - EDA(CCTV) (0) | 2023.08.16 |
[스터디 노트] Week5_1일차 [unit1 ~ 11] - EDA(CCTV) (0) | 2023.08.16 |