반응형
SMALL
문제를 풀어보자.
▼답
더보기
![](https://blog.kakaocdn.net/dn/wcHF4/btqLYMhWJVi/iIcgo5jQJxkxkRYVfpKPk1/img.png)
import pandas as pd
csv_test = pd.read_csv('dataset/Dataset.csv')
csv_test.head()
![](https://blog.kakaocdn.net/dn/wcHF4/btqLYMhWJVi/iIcgo5jQJxkxkRYVfpKPk1/img.png)
간단하게 pd.read_csv로 읽어들인 뒤 head()를 써서 상위 5개만 뽑아보았다.
▼답
더보기
![](https://blog.kakaocdn.net/dn/DA1r4/btqLZJrI17C/iXnDUYYbAyKlNtKXFoV27K/img.png)
나눔고딕 폰트 설치 되어있어야 한다.
import matplotlib as mpl
import matplotlib.pyplot as plt
#유니코드 깨지는 현상 방지
mpl.rcParams['axes.unicode_minus'] = False
#폰트 설정
plt.rcParams['font.family'] = 'NanumBarunGothic'
#테스트
plt.figure()
plt.grid(True)
plt.plot((1,1))
plt.title("한글테스트")
plt.show()
![](https://blog.kakaocdn.net/dn/DA1r4/btqLZJrI17C/iXnDUYYbAyKlNtKXFoV27K/img.png)
▼답
더보기
![](https://blog.kakaocdn.net/dn/bMOwFY/btqLW8silvC/Bc0zbmHJzQTHrTmisMWge0/img.png)
![](https://blog.kakaocdn.net/dn/XLUUV/btqLYM3mr1j/aFm2Os8fya4Rfzuj2fFQn1/img.png)
#null값 있는 컬럼 보기
csv_test.isnull().sum()
#null값 시각화
import missingno as msno
msno.matrix(csv_test,figsize=(18,6))
![](https://blog.kakaocdn.net/dn/bMOwFY/btqLW8silvC/Bc0zbmHJzQTHrTmisMWge0/img.png)
![](https://blog.kakaocdn.net/dn/XLUUV/btqLYM3mr1j/aFm2Os8fya4Rfzuj2fFQn1/img.png)
csv_test.isnull().sum() 으로 각 컬럼의 결측치 갯수를 알 수 있고, missingno를 이용해서 결측치를 시각적으로(흰색부분) 볼 수 있다.
figsize=(18,6) : 그래프 사이즈를 가로, 세로로 설정할 수 있다.
▼답
더보기
![](https://blog.kakaocdn.net/dn/WjB7A/btqLXRju38S/BUHpQ8d0aWXRClJ1Kil4Q0/img.png)
![](https://blog.kakaocdn.net/dn/bPLSBJ/btqLZKRL0C1/0ac8SUVhcUVKI1sKqa4VIk/img.png)
df=pd.DataFrame(csv_test,columns={'개방시설명', '위도', '경도','평일운영시작시각',
'평일운영종료시각','사용기준시간', '사용료','소재지도로명주소',
'소재지지번주소', '사용안내전화번호','제공기관명' }
)
df
# 사진대로 순서 변경
df = df[['개방시설명', '위도', '경도','평일운영시작시각',
'평일운영종료시각','사용기준시간', '사용료','소재지도로명주소',
'소재지지번주소', '사용안내전화번호','제공기관명']]
df
![](https://blog.kakaocdn.net/dn/WjB7A/btqLXRju38S/BUHpQ8d0aWXRClJ1Kil4Q0/img.png)
일부 컬럼만 출력해서 dataframe을 만든다.
하지만 컬럼 순서가 제멋대로이기 때문에 순서를 맞춰준다.
![](https://blog.kakaocdn.net/dn/bPLSBJ/btqLZKRL0C1/0ac8SUVhcUVKI1sKqa4VIk/img.png)
▼답
더보기
![](https://blog.kakaocdn.net/dn/vl0c4/btqL2Q4LQr8/fuqTHkvPKRDVl7nygg3yk1/img.png)
df.info()
![](https://blog.kakaocdn.net/dn/vl0c4/btqL2Q4LQr8/fuqTHkvPKRDVl7nygg3yk1/img.png)
▼답
더보기
![](https://blog.kakaocdn.net/dn/8kLmj/btqLYMI4nub/1uajmrrFJalFDlO1gJea9K/img.png)
df.isnull().sum()
![](https://blog.kakaocdn.net/dn/8kLmj/btqLYMI4nub/1uajmrrFJalFDlO1gJea9K/img.png)
▼답
더보기
import numpy as np
#df_seogu에 '개방시설명' 중 '서구청소년수련관'만 담기
df_seogu=df[df['개방시설명']=='서구청소년수련관']
#사용기준시간 NaN값 '4시간 20,000원' 으로 변경
df_seogu['사용기준시간']=df_seogu['사용기준시간'].fillna('4시간 20,000원')
#df_seogu['사용료']=df_seogu['사용료'].fillna('4시간 20,000원')
#소재지지번주소의 Nan값을 소재지도로명주소값으로 대체
df_seogu['소재지지번주소']=df_seogu['소재지지번주소'].fillna(df_seogu['소재지도로명주소'])
#중복된 데이터 삭제
df_seogu=df_seogu.drop_duplicates()
#시각화
n_data = len(df_seogu['개방시설명'])
index = np.arange(n_data)
#시작시간 출력
start = df_seogu['평일운영시작시각']
df_seogu
#크기와 색깔 꾸미기
plt.rcParams["figure.figsize"] = (14,4)
plt.rcParams['lines.linewidth'] = 2
plt.rcParams['lines.color'] = 'r'
plt.rcParams['axes.grid'] = True
#막대그래프 출력
plt.bar(index,start,tick_label=df_seogu['사용료'],width =0.5) #=> tick_label=openOffice['개방시설명'] 하면 개방시설명 으로 출력한다.
plt.show()
▼답
더보기
![](https://blog.kakaocdn.net/dn/cG85nm/btqLYNgWl2T/CCgRbLqTF8xitWa6dvMPxK/img.png)
#공백으로 나눔 -> 공백으로 나누면 한단어인 경우엔 NaN이 됨. 그냥 나눴어야했음.
#splt = df['제공기관명'].str.split("")
splt = df['제공기관명'].str.split()
# 앞 첫번째 자리까지만 추출
city_name = splt.str[0]
df['도시명']=city_name
df['도시명']
![](https://blog.kakaocdn.net/dn/cG85nm/btqLYNgWl2T/CCgRbLqTF8xitWa6dvMPxK/img.png)
▼답
더보기
![](https://blog.kakaocdn.net/dn/d4qqJR/btqLWIU189k/aoHu9ukWeeX3lbMzljarO1/img.png)
df['개방시설명'].groupby(df['도시명']).count()
#또는
df.groupby(df['도시명'])['개방시설명'].count()
![](https://blog.kakaocdn.net/dn/d4qqJR/btqLWIU189k/aoHu9ukWeeX3lbMzljarO1/img.png)
▼답
더보기
![](https://blog.kakaocdn.net/dn/RoLuQ/btqLYN2mlJ6/uCv1xsFHQtzFEUj9XKgrJ0/img.png)
df[df['도시명']=='인천광역시']
![](https://blog.kakaocdn.net/dn/RoLuQ/btqLYN2mlJ6/uCv1xsFHQtzFEUj9XKgrJ0/img.png)
반응형
LIST
'[ Python ]' 카테고리의 다른 글
[Python] Pandas 기초 / groupby / 데이터프레임 Json으로 저장 / 실습(3) (0) | 2020.10.30 |
---|---|
[Python] Pandas 기초 / DataFrame / matplotlib / 실습(2) (0) | 2020.10.29 |
[python] 주피터 노트북(jupyter notebook) 단축키 (0) | 2020.10.28 |
[Python] Pandas 기초/ Series /DataFrame / 실습(1) (0) | 2020.10.28 |
[Python] Pandas 기초/ DataFrame / Series / 실습 (0) | 2020.10.27 |
댓글