본문 바로가기
● 인공지능, 분석/20.12 생활 프로그래밍

[4. CSV] CSV 수정하기, 쉼표제거

by 0ver-grow 2021. 1. 9.
반응형

수정할 파일

popSeoul.csv
0.00MB

>>> import os,re
>>> os.getcwd()
'C:\\WINDOWS\\System32'
>>> os.chdir(r'C:\Users\JE\Desktop')
>>> import usecsv
>>> total = usecsv.opencsv('popSeoul.csv') # 이파일도 동일한 위치에 존재
>>> for i in total[:5] :
	print(i)

	
['Gu', 'Korean', 'Foreigner', 'Senior']
['Total', '9,740,398', '285,529', '1,468,146']
['Jongrogu', '151,767', '11,093', '27,394']
['Jongru', '126,409', '10,254', '23,025']
['Yongsangu', '228,830', '16,159', '38,531']

출력결과를 보면 숫자 사이 쉼표가 표시된 것이 보인다.

 

다음 순서대로 진행하여 쉼표를 제거하자

1. 정규식 불러오기

2. 변경할 원소 찾기

3. 쉼표 지우기

4. 이를 정수형/실수형으로 변경

5. 변경할 수 없다면 그대로 두기

 

원소 내 쉼표 제거

# 정상적으로 작동하는지 테스트부터 해보자
>>> import re
>>> j = '1,444,000'
>>> re.sub(',','',j)
'1444000'

원소 내 쉼표제거를 위한 필터링 : 알파벳, 한글은 쉼표제거 제외

import re, usecsv
total = usecsv.opencsv('popseoul.csv')
i = total[2]
for j in i :
	if re.search('[a-z가-힣]',j) : # j(원소)가 알파벳, 한글이라면 그대로 적재
    	k.append(j)
    else :
    	k.append(float(re.sub(',','',j))) # 그 외 , 제거하여 적재

'''
출력결과
['Jongrogu', 151767.0, 11093.0, 27394.0]
'''

 

특수문자(!)와 숫자 섞은 원소 찾기

>>> k = []
>>> for j in i :
	if re.search('[a-z가-힣]',j) :
		k.append(j)
	else :
		k.append(j)

		
>>> k
['Jongrogu', '151,767', '11,093', '27,394']

 

반응형