판다스 plot을 이용한 범주형 및 연속값 분포의 시각화
판다스 plot을 이용한 범주형 및 연속값 분포의 시각화
kaggle이나 csv 파일의 데이터 분석을 할 때 키별 특징 량의 분포를 시각화하여 비교하고 싶습니다.
카테고리 값의 경우 막대 위에 숫자를 표시합니다.
콘텐츠
필요한 라이브러리 가져오기
python3
import pandas as pd
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
np.random.seed(seed=0)
jupyter notebook라면 다음도 추가
python3
%matplotlib inline
DataFrame 준비
python3
length=500
train_df = pd.DataFrame(np.random.normal(loc=0, scale=1, size=(length)),columns=["cont"])
eval_df = pd.DataFrame(np.random.normal(loc=1, scale=0.5, size=(length)),columns=["cont"])
train_df = train_df.assign(cat=np.random.randint(0,5,length))
eval_df = eval_df.assign(cat=np.random.randint(0,6,length))
범주형 값 시각화
python3
def categorical_plot(df, key):
data = df[key].value_counts(sort=False)
ax = df[key].value_counts(sort=False).plot(kind="bar", title=key)
for i, d in enumerate(data):
ax.text(i, d, d, horizontalalignment="center",
verticalalignment="bottom")
return ax
python3
categorical_plot(train_df, "cat")
연속 값 시각화
python3
def continuous_plot(df, key):
ax = df[key].plot(kind="density", title=key)
return ax
python3
continuous_plot(train_df, "cont")
2DataFrame 간의 범주형 값 비교
python3
def compare_cat(trdf, evdf, key):
tr_df = trdf.rename(columns={key: "train"})
ev_df = evdf.rename(columns={key: "eval"})
tr_df = tr_df["train"].value_counts(sort=False)
ev_df = ev_df["eval"].value_counts(sort=False)
plot_df = pd.concat([tr_df, ev_df], axis=1)
ax = plot_df.plot(kind="bar", title=key)
for i, d in enumerate(tr_df):
ax.text(i, d, d, horizontalalignment="right",
verticalalignment="bottom")
for i, d in enumerate(ev_df):
ax.text(i, d, d, horizontalalignment="left",
verticalalignment="bottom")
return ax
python3
compare_cat(train_df, eval_df, "cat")
2DataFrame 간의 연속 값 비교
python3
def compare_cont(trdf, evdf, key):
tr_df = trdf.rename(columns={key: "train"})["train"]
ev_df = evdf.rename(columns={key: "eval"})["eval"]
plot_df = pd.concat([tr_df, ev_df], axis=1)
ax = plot_df.plot(kind="density", title=key).legend(loc="upper left")
return ax
python3
compare_cont(train_df, eval_df, "cont")
Reference
이 문제에 관하여(판다스 plot을 이용한 범주형 및 연속값 분포의 시각화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kusanorootbeer/items/2bebf3ec0dc5c8d2e8cf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)