-
멋쟁이사자처럼 2주차 회고 (2)카테고리 없음 2022. 9. 22. 18:13
2. 판다스를 이용한 데이터 프레임 이용
1) 데이터 프레임 생성
import pandas as pd
import numpy as np
df = pd.DataFrame({
'날짜':pd.date_range(start='20220914', end = '20220922').astype('str'),
'요일':['월','화','수','목','금','토','일','월','화'],
'지출내역': np.random.randint(0,10000,9),
'비고':['멋사시작',np.nan,np.nan,np.nan,'파이썬',np.nan,np.nan,'seaborn','인싸']})
df.info()
df.shape
df.dtypes
df.describe()
print(df)결과
날짜 요일 지출내역 비고
0 2022-09-14 월 3037 멋사시작
1 2022-09-15 화 7306 NaN
2 2022-09-16 수 4281 NaN
3 2022-09-17 목 3701 NaN
4 2022-09-18 금 2562 파이썬
5 2022-09-19 토 833 NaN
6 2022-09-20 일 7695 NaN
7 2022-09-21 월 1582 seaborn
8 2022-09-22 화 4269 인싸데이터 프레임 생성
데이터 프레임 행,열 확인
데이터 프레임 칼럼 별 type확인
데이터의 기술통계값 확인
2) 원하는 데이터 확인
print(df['칼럼']) : 해당 칼럼의 데이터 확인
df.loc[인덱스, 칼럼]: 행, 열의 데이터 확인
df.iloc[정수, 정수]: 정수에 해당하는 순서의 행, 열 데이터 확인
df.sample(정수): 정수 개 만큼 데이터를 샘플링
df.sample(frac=전체 데이터 중 가져올 비율, random_state= ): 데이터 중 랜덤으로 샘플 가져옴
3) csv로 파일 저장, 불러오기
csv로 파일 저장: df. to_csv("파일명", index= #인덱스 포함 여부)
csv로 파일 불러오기: pd.read_csv("파일명")
3. Seaborn을 이용한 데이터 시각화
1) 다양한 그래프 시각화 함수
sns.countplot(data=df, x="칼럼"): 칼럼으로 그룹화 후 빈도수를 그래프로 시각화
sns.barplot(data=df, x="칼럼", y="칼럼"): x 칼럼으로 그룹화 후 y값 평균을 그래프로 시각화
- 검은색 선(신뢰구간=confidence interval) 빼고 그리는 걸 추천, 시간이 오래걸림
sns.boxplot(data=df, x='칼럼', y='칼럼'): x칼럼으로 그룹화 후 y값을 박스플롯형태로 시각화
sns.violinplot(data=df, x="칼럼", y="칼럼"): x칼럼으로 그룹화 후 y값을 violinplot 형태로 시각화
-히스토그램: 도수분포를 시각화, violiplot: 히스토그램의 밀도를 시각화
sns.displot(data=df, x="칼럼", hue="칼럼" #그룹화하여 색상구분, kde=True #곡선 그래프 #violinpolt의 절반, col="칼럼" #데이터 그룹화): 밀도를 시각화
relplot : 두 가지 변수의 관계를 나타내기 위해 주로 사용
displot : 변수 하나 혹은 두개의 값 분포를 나타내기 위해 주로 사용
catplot : 범주형 변수와 연속형 변수간의 관계를 나타내기 위해 주로 사용
sns.scatterplot(data=df, x="x", y="y", hue="dataset"): 점으로 x와 y 그래프 시각화
sns.regplot(data=df, x="x", y="y"): scatterplot에 회귀선 추가
sns.lmplot(data=df, x="x", y="y", hue="dataset", col="dataset", col_wrap=2 #한줄에 표시하는 플롯 수): regplot에 서브플로을 생성(그룹화)
boxplot vs violinplot : 분위 안에서 raw데이터 값들의 분포가 달라졌을 경우 boxplot은 변화가 없지만 violinplot은 밀도변화를 디테일하게 알 수 있다