python 데이터시각화

이지훈·2022년 2월 3일
0

궁금해서 끄적끄적

conda create -n name python = 3.8
pip install numpy
pip install pandas
pip install matplotlib
python -m pip install seaborn # 얘는 import 에러 발생
pip install sklearn

이후, import를 한다.

#%%
import pandas as pd
import numpy as np
import random as rnd
import seaborn as sns
import matplotlib.pyplot as plt
from sklearn.linear_model import LogisticRegression
from sklearn.svm import SVC, LinearSVC
from sklearn.ensemble import RandomForestClassifier
from sklearn.neighbors import KNeighborsClassifier
from sklearn.naive_bayes import GaussianNB
from sklearn.linear_model import Perceptron
from sklearn.linear_model import SGDClassifier
from sklearn.tree import DecisionTreeClassifier
import warnings
warnings.filterwarnings(action='ignore')

주피터 노트북 vscode에서 쓰는 방법
1. #%%를 맨 위에 추가한다. 그럼 run sell을 클릭할 수 있는데, 이럼 데이터를 시각화해서 볼 수 있다.
2. vscode extension인 python은 자체적으로 jupiter notebook을 내장한다. command palate에서 create New jupiter notebook을 클릭해서 vscode에서 jupiter 노트북을 써도 된다.
3. .ipynb 파일명으로 주피터노트북 파일을 만들어 사용할 수도 있다(다양한 방법이 있음)

나는 kaggle에서 titanic 생존자 예측이라는 csv파일을 다운받았다.

우선 판다스를 이용해서 csv파일을 읽어온다.

train_df=pd.read_csv("./train.csv")
test_df=pd.read_csv("./test.csv")

그리고 변수를 확인한다.

[1]
combine=[train_df,test_df]
print("1",train_df.columns.values)

[1]
1 ['PassengerId' 'Survived' 'Pclass' 'Name' 'Sex' 'Age' 'SibSp' 'Parch'
 'Ticket' 'Fare' 'Cabin' 'Embarked']

살짝 코드를 봐보자.
head() : 0~4번까지 데이터 미리보기
tail() : 뒤에서 5번째~끝까지 데이터 미리보기
info() : 데이터에 대한 전반적인 정보를 나타냄. df를 구성하는 행과 열의 크기, 컬럼명, 컬럼을 구성하는 값의 자료형 등을 출력
describe() : 데이터의 컬럼별 요약 통계량을 나타냄. 또한 mean(), max(), median()등 개별 함수를 사용하여 통계량을 계산할 수도 있다.

print(train_df.head())
print(train_df.tail()) # 뒤
print(train_df.info()) # 자료정보
print(train_df.describe()) # 통계치

메서드 사용방식

result = object.describe(percentiles=None, include=None)

percentiles : 분위수를 축력하기 위한 데이터 입력(0, 0.25, 0.5, 0.75 등..)
include : 결과를 요약하기 위한 데이터 타입의 리스트를 입력받음

이와 같이 사용

print(train_df.describe(include=['O'])) # 변수 통계치

group_by : 같은 값을 하나로 묶어 통계 또는 집계 결과를 얻기 위해 사용
mean : 평균값
as_index : 이 그룹을 인덱스로 지정할 것인지 여부, index를 사용하면 복잡성이 증가해서 사용하고 싶지 않을 때 False

print(train_df[['Pclass', 'Survived']].groupby(['Pclass'], as_index=False).mean()

sort_values : 값을 기준으로 정렬하는 메소드
by : 값
ascending=False : 내림차순, True면 오름차순

train_df.sort_values(by=None, ascending=False)

객실 등급에 따른 생존율

그래서 이렇게 나타낼 수 있다.

[2]
print(train_df[['Pclass', 'Survived']].groupby(['Pclass'], as_index=False).mean().sort_values(by='Survived', ascending=False)) 
[2]
   Pclass  Survived
0       1  0.629630
1       2  0.472826
2       3  0.242363

이렇게 pandas를 사용하는구나... 공부할게 참 많은것 같다.🤪

profile
꾸준하게 🐌

0개의 댓글