728x90
반응형
# -*- coding: utf-8 -*-
"""
Created on Wed Jun 29 13:58:37 2022
@author: KITCOOP
test0629_A.py
"""
'''
1. age.csv 파일에서 해당 지역의 인구비율과 전체지역의 인구 비율을 함께
그래프로 작성하기
'''
import numpy as np
import csv
import matplotlib.pyplot as plt
import re
f =open('data/age.csv')
data = csv.reader(f)
next(data)
data=list(data)
name='역삼'
homelist=[]
namelist=[]
for row in data :
if row[0].find(name) >= 0 :
print(name,"===",row[0],":",row[0].find(name))
row = list(map((lambda x:x.replace(",","")),row))
homelist.append \
(np.array(row[3:], dtype =int) / int(row[2]) *100)
namelist.append(re.sub('\(\d*\)', '', row[0]))
alldata = np.array(row[3:], dtype =int) / int(row[2])*100
#전체 지역의 데이터 alldata에 저장
for row in data :
row = list(map((lambda x:x.replace(",","")),row))
away = np.array(row[3:], dtype = int) / int(row[2]) *100
if np.isnan(away).any() : #away 데이터셋에 한개라도NA값이 존재하면
continue #반복문의 처음으로
alldata = np.vstack((alldata,away)) #행을 기준으로 연결
#연령별 인구수/전체인구수 평균값
alldata = alldata.mean(axis=0) #열별 평균
plt.style.use('ggplot')
plt.figure(figsize = (10,5), dpi=100)
plt.rc('font', family ='Malgun Gothic')
for h,n in zip(homelist,namelist) :
plt.plot(h,label=n)
plt.plot(alldata, label="전체")
plt.xlabel("나이")
plt.ylabel("비율(%)")
plt.legend()
plt.show()
plt.savefig("20220629-1.png",dpi=400,bbox_inches="tight")
'''
2. supplier_data.csv 파일을 pandas를 이용하여 읽고
["1/20/14","1/30/14"] 일자 데이터만 화면에 출력하기
'''
import pandas as pd
infile='data/supplier_data.csv'
df = pd.read_csv(infile)
print(df);
print(df.info());
importdate = ["1/20/14","1/30/14"]
df_inset = df.loc[df["Purchase Date"].isin(importdate),:]
print(df_inset)
'''
3. supplier_data.csv 파일 데이터에서 Invoice Number가 920으로
시작하는 레코드만 화면에 출력하기
'''
infile='data/supplier_data.csv'
df = pd.read_csv(infile)
print(df["Invoice Number"].str.startswith("920"))
df_inset = df.loc[df["Invoice Number"].str.startswith("920"),:]
print(df_inset)
'''
4. sales_2013.xlsx 파일 중 Purchase Date 컬럼의 값이
"01/24/2013"과 "01/31/2013" 인 행만 sales_2013_01.xlsx 파일로 저장하기
isin 함수 사용.
'''
import pandas as pd
infile="data/sales_2013.xlsx"
outfile = "data/sales_2013_01.xlsx"
df = pd.read_excel(infile,"january_2013")
print(df.info())
print(df.head())
select_date = ['01/24/2013','01/31/2013']
#select_date = ['2013-01-24','2013-01-31']
df_value = df[df['Purchase Date'].isin(select_date)]
df_value
print(df_value.info())
writer = pd.ExcelWriter(outfile)
df_value.to_excel(writer,sheet_name="jan_13_output",index=False)
writer.save()
'''
5. seaborn 모듈의 titanic 데이터를 이용하여 클래스별
생존 인원을 출력하시오
'''
import seaborn as sns
titanic = sns.load_dataset('titanic')
titanic.groupby(['class']).survived.sum()
titanic.groupby(['class']).survived.count()
728x90
반응형
'study > Python' 카테고리의 다른 글
[Python] 41. Test (0) | 2022.06.30 |
---|---|
[Python] 41. 데이터전처리, 날짜데이터처리, 주식데이터처리, BeautifulSoup (0) | 2022.06.30 |
[Python] 40. Test (0) | 2022.06.29 |
[Python] 40. age.csv 파일을 읽어서 인구구조를 알고 싶은 동을 찾아서 인구구조 그래프를 작성하기, 데이터 전처리 : 원본데이터를 원하는 형태로 변경하는 과정, 중복데이터 처리 (0) | 2022.06.29 |
[Python] 39. Test 답 (0) | 2022.06.28 |