Notice
Recent Posts
Recent Comments
Link
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Tags
more
Archives
Today
Total
관리 메뉴

노승현

python - 데이터 가공 본문

Python

python - 데이터 가공

nsh95 2024. 5. 10. 17:01

 

 

csv파일 데이터 가공

with open('test1.csv','r',encoding='cp949') as file:
    data=csv.reader(file)
    print(data)
    for i in range(12):
        header = next(data) ## pointer 기반 메서드 == resultSet (다음 데이터로 이동)
    
    for row in data:
        if row[0] == '\t\t':
            break
        print(row)

## 이러한 작업을 데이터 가공이라고 한다.

 

 

 

 

 

기상청 공공데이터(2013~2023년도 사이에 최고 기온 추출)

maxTemp=0
date=''
with open('test1.csv','r',encoding='cp949') as file:
    data=csv.reader(file)
    header = next(data) ## 필요없는 데이터는 header 라고 설정(컬럼명등)
    for row in data:
##        print(row)
        row[5]=float(row[5])
        if maxTemp < row[5]:
            maxTemp= row[5]
            date= row[-4]
print('최고 기온 : '+str(maxTemp))
print('일자 : '+date)

 

 

 

행정동별 연령별 인구현황

# 2018년도 0~9세 가장 적은 지역
minNum=0
area=''
with open('test2.csv','r',encoding='cp949') as file:
    data=csv.reader(file)
    header=next(data)
    pivot =next(data)
    minNum=int(pivot[3].replace(',',''))
    for row in data:
        row[3]=int(row[3].replace(',',''))
        if minNum>row[3]:
            minNum=row[3]
            area=row[0]

print(area)
print(str(minNum)+'명')

 

 

 

문제1) 2018년도와 2023년를 비교했을 때, 0~9세 인원이 줄어든 지역의 이름을 출력해주세요

## 2018년도와 2023년를 비교했을 때, 0~9세 인원이 줄어든 지역의 이름을 출력해주세요


area=[]
people18=0
people23=0
with open('test2.csv','r') as file:
    data=csv.reader(file)
    header=next(data)
    pivot=next(data)
    people18=int(pivot[1].replace(',',''))
    people23=int(pivot[2].replace(',',''))

    for row in data:
        if people18>people23:
            area.append(row[0])

print(area)

 

출력 데이터

 

 

# 사용자가 검색한 지역의 2023년도 20~39세 인원수를 출력해주세요 [-8][-9] .csv파일의 -8,-9인덱스가 해당 데이터
data1=0
data2=0
while True:
    area=input('검색할 지역의 이름 입력 >> ')
    flag=False
    
    with open('test3.csv','r',encoding='cp949') as file:
        data=csv.reader(file)
        header = next(data)
        for row in data:
            if area in row[0]:
                print('검색 결과 : '+row[0])
                ans=input('입력하신 지역이 맞습니까?(Y/N) >>')
                if ans =='Y':
                    flag=True
                    data1=int(row[-9].replace(',',''))
                    data2=int(row[-8].replace(',',''))
                    break
    if not flag:
        print('입력한 지역은 없는 지역명입니다 ')
        print('다시 입력해주세요 ')
    else:
        print('찾았습니다')
        break
result=data1+data2
print(area+'의 20~39세 인원은 '+str(result)+'명 입니다')

 

출력 데이터

'Python' 카테고리의 다른 글

python - 다양한 그래프 그려보기  (0) 2024.05.23
python - 예외처리  (0) 2024.05.13
python - 파일 입출력  (0) 2024.05.08
UP & DOWN 게임 (python)  (0) 2024.05.03
python - 함수와 메서드  (1) 2024.05.03