파일 가져와서 시각화 하기
csv파일 읽기
보통 파일을 열고 닫는 close를 사용하여 메모리 누수를 방지해야하지만 더 편리한 코드 with사용할 수 있다.
with open('/content/drive/MyDrive/1900_python2_jsh/한국환경공단_도로 재비산먼지 측정 정보_20210731 (1).csv', mode='r',encoding='euc-kr')as f:
li = f.readlines()
#각각의 날짜의 평균 농도 구하기
def getData(fileName):
with open('/content/drive/MyDrive/1900_python2_jsh/' +fileName,mode='r',encoding='euc-kr') as f:
li = f.readlines()
data=[]
for line in li:
data.append(line.replace(' " ',''),split(','))
return(data[0],data[1:]) #항목과 데이터를 튜플로 리턴
with open('/content/drive/MyDrive/1900_python2_jsh/한국환경공단_도로 재비산먼지 측정 정보_20210731 (1).csv', mode='r',encoding='euc-kr')as f:
li = f.readlines()
#replace(바뀔 문자, 바꿀 문자)
#print(' hello everyone'.replace('h','H'))
#print(li[1].replace('"',''))
data=[]
for line in li:
data.append(line.replace('"','').split(',')) #['"측정일자","측정시간",""...'] --> [['측정일자',측정시간',''...']]
print(li)
print(data)
#날짜 입력받아 해당일에 맞춰 출력하기
#2021-07-01
date=input('날짜를 입력하세요 ex) 2021-07-01')
for line in data:
if line[0] == date: #'측정일자'의 값
print('=====미세먼지 정보=====')
print('측정일자 : ', line[0])
print('측정 시간: ',line[1])
print('미세먼지 농도: ',line[9])
#cvs파일 정보 시각화하기
import matplotlib.pyplot as plt
tableHead, data= getData('한국환경공단_도로 재비산먼지 측정 정보_20210731 (1).csv')
#각 날짜별 평균 내기
dustDensity={}
day=0
cnt=0
for line in data:
if line[0][-2:] =='%02d'%day: #2021-07-01 에서 01 을 해당함
cnt+=1
total+=int(line[9])
dustDensity[day] = total/cnt
else:
total =0
day+=1
cnt=0
print(dustDensity)
#key,value()
density = list(dustDensity.values())
date=list((dustDensity.key())
print(density)
print(date)
#시각화(x: day, y: dustDesnity)
fig=plt.figure()
ax=fig.add_subplot(111)
ax.plot(date,density,label='density')
plt.xlabel('date')
plt.ylabel('density')
plt.title('find dust density')
plt.legend()
plt.show()
#서울시 공공 자전거 대여 건수 데이터 시각화 하기
import matplotlib.pyplot as plt
tableHead, data = getData('서울특별시 공공자전거 일별 대여건수_21.02.01_21.06.30.csv')
print(tableHead)
print(data)
li=[]
for line in data:
if line[0] !='': #대여일존재시 실행
li.append([line[0],(line[1]+line[2]).replace(' ','')]) #배열 li에 배열을 append
print(li)
li1=[i[0] for i in li]
li2=[int(i[1]) for i in li]
#for i in li: li1.append(i[0]) li2.append(int(i[1]))
print(li1)
print(li2)
#시각화
plt.figure(figsize=(30,10))
plt.plot(li1,li2) #x,y 날짜,건수
#회전율
plt.xticks(rotation=90)
plt.legend()
plt.show()
추가로 배운 내용
튜플 언패킹
name, hello = ('jenny','안녕')
print(name)
'Python' 카테고리의 다른 글
파이썬 크롤링과 시각화 기본다지기(5) (0) | 2021.09.28 |
---|---|
파이썬 크롤링과 시각화 기본다지기(4) (0) | 2021.09.23 |
파이썬 크롤링과 시각화 기본다지기(2) (2) | 2021.09.21 |
파이썬 크롤링과 시각화 기본다지기(1) (0) | 2021.09.17 |
IDLE로 간단한 그림판 실습하기 (0) | 2021.03.21 |