-
[Python] 데이터 분석 특강 정리2Study/Python 2021. 6. 30. 20:19
# numpy를 이용해 궁금한 지역의 인구 데이터 출력
import numpy as np
import csv
import matplotlib.pyplot as plt
f = open('age.csv')
data = csv.reader(f)
next(data)
name = input('인구 구조가 알고싶은 지역의 이름을 입력 : ')
#for row in data:
# for i in range(len(row)):
# if ',' in row[i]:
# row[i] = row[i].replace(',', '')
for row in data :
if name in row[0] :
home = np.array(row[3:], dtype=int) / int(row[2]) # 전체 인구 중 각 연령대 비율
plt.rc('font', family='Malgun Gothic')
plt.title(name + ' 지역의 인구 구조')
plt.plot(home)
plt.show()
-
# 입력한 지역과 유사한 인구 구조를 가진 지역의 그래프 출력
import numpy as np
import csv
import matplotlib.pyplot as plt
# 데이터 읽어오기
f = open('age.csv')
data = csv.reader(f)
next(data)
data = list(data)
# 궁금한 지역의 이름 입력
name = input('인구 구조가 알고싶은 지역의 이름을 입력 : ')
mn = 1
result_name = ''
result = 0
#for row in data:
# for i in range(len(row)):
# if ',' in row[i]:
# row[i] = row[i].replace(',', '')
# 지역의 인구 구조 저장
for row in data :
if name in row[0] :
home = np.array(row[3:], dtype=int) / int(row[2].replace(',', '')) # 전체 인구 중 각 연령대 비율
# 해당 인구 구조와 가장 비슷한 인구 구조를 가진 지역 찾기
for row in data :
away = np.array(row[3:], dtype=int) / int(row[2].replace(',', ''))
s = np.sum((home - away) ** 2)
if s < mn and name not in row[0] : # 입력한 지역은 아니면서 가장 비슷한 것 찾기
mn = s
result_name = row[0]
result = away
# 시각화
plt.rc('font', family='Malgun Gothic')
plt.title(name + ' 지역과 가장 비슷한 인구 구조를 가진 지역')
plt.plot(home, 'r.:', label = name)
plt.plot(result, color='pink', label = result_name)
plt.legend()
plt.show()
-
import pandas as pd
# 위키피디아에서 제공하는 올림픽 메달 데이터 가져오기
df = pd.read_html('https://en.wikipedia.org/wiki/All-time_Olympic_Games_medal_table', header=0, index_col=0)
summer = df[1].iloc[:, :5]
summer.columns = ['경기수', '금', '은', '동', '계']
summer = summer.sort_values('금', ascending=False) # 내림차순 정렬
summer
-
import pandas as pd
import numpy as np
index = pd.date_range('1/1/2000', periods=8) # 날짜 형태로 된 8개의 인덱스 만들기
print(index)
# numpy를 이용해 랜덤 데이터에 인덱스, 컬럼 이름 설정된 데이터 프레임 생성
df = pd.DataFrame(np.random.rand(8, 3), index=index, columns=list('ABC'))
print(df['B']) # B에 해당하는 부분만 출력
-
print(df['B'] > 0.4)
df2 = df[df['B'] > 0.4]
df2
-
df['D'] = df['A'] / df['B'] # A열 값을 B열 값으로 나눈 값을 D열에 저장
df
-
df['E'] = np.sum(df, axis=1) # 모든 열을 다 더한 값을 E열에 저장. 행 우선 계산
df
-
df = df.div(df['C'], axis=0) # 모든 값을 C열의 값으로 나눈 뒤
df.to_csv('test.csv') # csv파일로 저장
df
'Study > Python' 카테고리의 다른 글
[Python/matplotlib] 월 최고 기온 데이터 비교를 위한 막대그래프 그리기 (0) 2022.01.14 [Python/Matplotlib] 기온 csv파일을 읽어와서 데이터 분석 (0) 2022.01.13 [Python] 데이터 분석 특강 실습 정리 (0) 2021.06.29 [Python] 클래스2 (0) 2021.06.04 [Python] 클래스 (0) 2021.06.01