본문 바로가기

백엔드개발자 준비하기 - 파이썬

[파이썬] 데이터 처리

예시1

data_list = []
with open('부산광역시_노인복지관 현황_20230101.csv') as f:
    for line in f:
        data_list.append(line.split(','))
data_list = data_list[1:]

gu_list = []
for i in data_list:
    address = i[2]
    address_list = address.split()
    gu_list.append(address_list[1])
    
gu_list[21] = '사하구'

gu_set = set(gu_list)

d_gu_list = []
d_gu_count = []

for i in gu_set:
    d_gu_list.append(i)
    d_gu_count.append(gu_list.count(i))

d1 = dict(zip(d_gu_list, d_gu_count))

def fn10(x):
    return x[1]

d1_sorted = dict(sorted(d1.items(), key = fn10))
print(d1_sorted)

결과

{'동래구': 1, '금정구': 1, '북구': 1, '수영구': 2, '서구': 2, '남구': 2, '영도구': 2, '연제구': 2, '중구': 2, '사상구': 2, '사하구': 3, '강서구': 3, '기장군': 3, '해운대구': 3, '동구': 3, '부산진구': 3}

 

예시2-1

data_list = []
with open('전국건강증진센터표준데이터.csv') as f:
    for line in f:
        data_list.append(line.split(','))

data_list = data_list[1:]

sido_list = []
for i in data_list:
    if len(i[2]) > 0:
        sido_list.append(i[2].split()[0])
        
for i, s in enumerate(sido_list):
    sido_list[i] = s.lstrip('"')

sido_set = set(sido_list)

for i in sido_set:
    print(i, sido_list.count(i))

결과

경기도 65
대전광역시 10
서울특별시 26
경상북도 21
전라북도 14
경북 1
충청남도 16
광주광역시 11
전라남도 20
대구광역시 8
울산광역시 7
충청북도 12
제주특별자치도 10
부산광역시 18
강원도 16
경상남도 20
인천광역시 15
세종특별자치시 1

 

예시2-2

# 빈도수 dictionary 반환
# 1. raw_list를 셋으로 변환
# 2. 셋을 순환하면서, 각각 몇개씩 raw_list에 있는지 카운트
# 3. 1, 2에서 얻은 key, value 값으로 dictionay 만들어 return
def sort_key(x):
    return x[1]

def unique_count(raw_list, sort = False):
    raw_set = set(raw_list)
    k_list = []
    v_list = []
    for i in raw_set:
        k_list.append(i)
        v_list.append(raw_list.count(i))
    ret_dict = dict(zip(k_list, v_list))
    if sort == True:
        #ret_dict = dict(sorted(ret_dict.items(), key = lambda x: x[1]))
        ret_dict = dict(sorted(ret_dict.items(), key = sort_key))
    return ret_dict

unique_count(sido_list, sort = True)

결과

{'세종특별자치시': 1,
 '경북': 1,
 '울산광역시': 7,
 '대구광역시': 8,
 '대전광역시': 10,
 '제주특별자치도': 10,
 '광주광역시': 11,
 '충청북도': 12,
 '전라북도': 14,
 '인천광역시': 15,
 '강원도': 16,
 '충청남도': 16,
 '부산광역시': 18,
 '전라남도': 20,
 '경상남도': 20,
 '경상북도': 21,
 '서울특별시': 26,
 '경기도': 65}

 

예시3

data_list = []
with open('전국건강증진센터표준데이터.csv') as f:
    for line in f:
        data_list.append(line.split(','))
        
len_list = []
for i in data_list:
    len_list.append(len(i))
#print(set(len_list))

doctor_index = data_list[0].index('의사수')

doctor_count = []
for e in data_list[1:]:
    doctor_count.append(e[doctor_index])
#print(doctor_count)

print('center count : ', len(doctor_count))
print('center with no doctor : ', doctor_count.count('0'))

for i, c in enumerate(doctor_count):
    try:
        doctor_count[i] = int(c)
    except:
        doctor_count[i] = 0
print('total doctor count : ', sum(doctor_count))

결과

center count :  291
center with no doctor :  166
total doctor count :  156

'백엔드개발자 준비하기 - 파이썬' 카테고리의 다른 글

[파이썬] 모듈 임포트  (0) 2023.02.03
[파이썬] 형변환  (0) 2023.02.03
[파이썬] 문자열  (0) 2023.02.02
[파이썬] 함수  (0) 2023.02.02
[파이썬] 조건문, 반복문  (0) 2023.02.02