import pandas as pd
import numpy as np
import seaborn as sns
import matplorlib.pyplot as plt
print(pd.__version__)
print(sns.__version__)
df = sns.load_dataset("mpg")
df.shape
df.info()
df.isnull().sum()
df.isnull().mean() * 100
plt.figure(figsize=(12, 8))
sns.heatmap(df.isnull(), cmap="gray")
df.describe()
df.describe(include = "object")
Unique
unique()는 serise 타입만 가능하고
nunique()는 series, dataframe 타입 모두 가능
countplot 으로 origin 빈도수 시각화 하기
sns.countplot(data=df, x="origin")
df["origin"].value_counts()
pd.crosstab(index=df["origin"], columns=df["cylinders"])
sns.barplot(data=df, x="origin", y="mpg")
df.groupby("origin")["mpg"].mean()
pd.pivot_table(data=df, index="origin")
sns.barplot(data=df, x="origin", y="mpg",estimator=np.sum, hue="cylinders")
estimator -> 수치 데이터를 어떻게 계산할 것인가?
df.groupby(by=["origin", "cylinders"])["mpg"].mean().unstack()
pd.pivot_table(data=df, index="origin", columns="cylinders", values="mpg")
df.groupby("origin")["mpg"].describe()
그냥 박스플롯, 바이올린 플롯을 따로 그리는 것이 아니라, catplot 안에서 kind로 박스플롯과 바이올린 플롯의 형태를 지정해주는 이유
col_wrap=3 -> 한줄에 3개의 그래프를 그린다는 의미
시각화 전문가들은 3가지 이상의 색상을 사용하는 것을 권장하지 않음.
!pip install -U finance-datareader
import FinanceDataReader as fdr
fdr.StockListing("KRX")
table = pd.read_html(url)
df = table[0]
cols = df.columns
temp_list = []
for news in table[:-1]:
news.columns = cols
temp_list.append(news)
display(news)
df_news = pd.concat(temp_list)
axis=0 행을 기준으로 위아래로 같은 컬럼끼리 값을 이어 붙여 새로운 행을 만듦
axis=1 컬럼을 기준으로 인덱스가 같은 값을 옆으로 붙여 새로운 컬럼을 만듦
df_news = df_news.dropna()
df_news = df_news[~df_news["정보제공"].str.contains("연관기사")].copy()
df_news.drop_duplicates()
cols = ['종목코드', '종목명', '날짜', '종가', '전일비', '시가', '고가', '저가', '거래량']
df_day = df_day[cols]
response = requests.get(url)
etf_json = response.json()