파이썬 pandas 콤마가 포함된 수치데이터를 to_numeric 으로 변환.
조회수 3417회
seoul_sgg_stat.xlsx
비밀번호:1234
파일은 블로그에 첨부했습니다
seoul_sgg_stat = pd.read_excel('seoul_sgg_stat.xlsx')
seoul_sgg_stat.head()
seoul_sgg_stat['주민등록인구']
이 문자형으로 되어있습니다.
['주민등록인구']
열전체를 정수형으로 바꿀없나요? pd.to_numeric
이런 함수를 사용해보았는데 안돼내요?
심지어 int(seoul_sgg_stat['주민등록인구'][0])
실행하면
invalid literal for int() with base 10: '345,041'
이런 오류가 뜨네 그 이유좀 알려주세요 ^
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
,
를 제거하고 :df['주민등록인구'] = df['주민등록인구'].apply(lambda x: x.replace(',', ''))
to_numeric
Python 3.8.1 (tags/v3.8.1:1b293b6, Dec 18 2019, 23:11:46) [MSC v.1916 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license()" for more information. >>> import pandas as pd >>> df = pd.read_excel('c:/temp/seoul_sgg_stat.xlsx') >>> df 시군구코드 시군구명 위도 경도 스타벅스_매장수 주민등록인구 종사자수 사업체수 0 11320 도봉구 37.665861 127.031767 2 345,041 68669 18455 1 11380 은평구 37.617612 126.922700 8 490,253 87693 24179 2 11230 동대문구 37.583801 127.050700 8 364,962 143858 32994 3 11590 동작구 37.496504 126.944307 10 406,715 103915 19609 4 11545 금천구 37.460097 126.900155 10 253,344 223058 30080 5 11530 구로구 37.495486 126.858121 10 440,396 210506 37445 6 11110 종로구 37.599100 126.986149 36 164,348 269106 40871 7 11305 강북구 37.646995 127.014716 5 327,511 69787 18654 8 11260 중랑구 37.595379 127.093967 6 411,552 99241 27287 9 11680 강남구 37.495985 127.066409 77 557,865 711278 73590 10 11500 강서구 37.565762 126.822656 15 608,361 199289 33273 11 11140 중구 37.557945 126.994190 52 135,139 423808 66190 12 11740 강동구 37.549208 127.146482 13 438,225 143061 30079 13 11215 광진구 37.548144 127.085753 15 371,671 123689 24531 14 11440 마포구 37.562291 126.908780 32 385,624 252534 36504 15 11650 서초구 37.476953 127.037810 46 445,164 439963 47061 16 11290 성북구 37.606991 127.023218 13 453,902 113893 24690 17 11350 노원구 37.655264 127.077120 13 555,803 114736 25827 18 11710 송파구 37.504853 127.114482 29 671,994 302517 45375 19 11410 서대문구 37.582037 126.935666 20 324,871 111615 19612 20 11470 양천구 37.527062 126.856153 15 473,087 119443 26297 21 11560 영등포구 37.520641 126.913924 35 403,988 362524 44512 22 11620 관악구 37.465399 126.943807 11 522,292 119180 26235 23 11200 성동구 37.550675 127.040962 11 314,551 162019 26130 24 11170 용산구 37.531101 126.981074 18 245,411 133446 21178 >>> df.info() <class 'pandas.core.frame.DataFrame'> RangeIndex: 25 entries, 0 to 24 Data columns (total 8 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 시군구코드 25 non-null int64 1 시군구명 25 non-null object 2 위도 25 non-null float64 3 경도 25 non-null float64 4 스타벅스_매장수 25 non-null int64 5 주민등록인구 25 non-null object 6 종사자수 25 non-null int64 7 사업체수 25 non-null int64 dtypes: float64(2), int64(4), object(2) memory usage: 1.7+ KB >>> df['주민등록인구'] = df['주민등록인구'].apply(lambda x: x.replace(',', '')) >>> df 시군구코드 시군구명 위도 경도 스타벅스_매장수 주민등록인구 종사자수 사업체수 0 11320 도봉구 37.665861 127.031767 2 345041 68669 18455 1 11380 은평구 37.617612 126.922700 8 490253 87693 24179 2 11230 동대문구 37.583801 127.050700 8 364962 143858 32994 3 11590 동작구 37.496504 126.944307 10 406715 103915 19609 4 11545 금천구 37.460097 126.900155 10 253344 223058 30080 5 11530 구로구 37.495486 126.858121 10 440396 210506 37445 6 11110 종로구 37.599100 126.986149 36 164348 269106 40871 7 11305 강북구 37.646995 127.014716 5 327511 69787 18654 8 11260 중랑구 37.595379 127.093967 6 411552 99241 27287 9 11680 강남구 37.495985 127.066409 77 557865 711278 73590 10 11500 강서구 37.565762 126.822656 15 608361 199289 33273 11 11140 중구 37.557945 126.994190 52 135139 423808 66190 12 11740 강동구 37.549208 127.146482 13 438225 143061 30079 13 11215 광진구 37.548144 127.085753 15 371671 123689 24531 14 11440 마포구 37.562291 126.908780 32 385624 252534 36504 15 11650 서초구 37.476953 127.037810 46 445164 439963 47061 16 11290 성북구 37.606991 127.023218 13 453902 113893 24690 17 11350 노원구 37.655264 127.077120 13 555803 114736 25827 18 11710 송파구 37.504853 127.114482 29 671994 302517 45375 19 11410 서대문구 37.582037 126.935666 20 324871 111615 19612 20 11470 양천구 37.527062 126.856153 15 473087 119443 26297 21 11560 영등포구 37.520641 126.913924 35 403988 362524 44512 22 11620 관악구 37.465399 126.943807 11 522292 119180 26235 23 11200 성동구 37.550675 127.040962 11 314551 162019 26130 24 11170 용산구 37.531101 126.981074 18 245411 133446 21178 >>> df.info() <class 'pandas.core.frame.DataFrame'> RangeIndex: 25 entries, 0 to 24 Data columns (total 8 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 시군구코드 25 non-null int64 1 시군구명 25 non-null object 2 위도 25 non-null float64 3 경도 25 non-null float64 4 스타벅스_매장수 25 non-null int64 5 주민등록인구 25 non-null object 6 종사자수 25 non-null int64 7 사업체수 25 non-null int64 dtypes: float64(2), int64(4), object(2) memory usage: 1.7+ KB >>> df['주민등록인구'] = pd.to_numeric(df['주민등록인구']) >>> df 시군구코드 시군구명 위도 경도 스타벅스_매장수 주민등록인구 종사자수 사업체수 0 11320 도봉구 37.665861 127.031767 2 345041 68669 18455 1 11380 은평구 37.617612 126.922700 8 490253 87693 24179 2 11230 동대문구 37.583801 127.050700 8 364962 143858 32994 3 11590 동작구 37.496504 126.944307 10 406715 103915 19609 4 11545 금천구 37.460097 126.900155 10 253344 223058 30080 5 11530 구로구 37.495486 126.858121 10 440396 210506 37445 6 11110 종로구 37.599100 126.986149 36 164348 269106 40871 7 11305 강북구 37.646995 127.014716 5 327511 69787 18654 8 11260 중랑구 37.595379 127.093967 6 411552 99241 27287 9 11680 강남구 37.495985 127.066409 77 557865 711278 73590 10 11500 강서구 37.565762 126.822656 15 608361 199289 33273 11 11140 중구 37.557945 126.994190 52 135139 423808 66190 12 11740 강동구 37.549208 127.146482 13 438225 143061 30079 13 11215 광진구 37.548144 127.085753 15 371671 123689 24531 14 11440 마포구 37.562291 126.908780 32 385624 252534 36504 15 11650 서초구 37.476953 127.037810 46 445164 439963 47061 16 11290 성북구 37.606991 127.023218 13 453902 113893 24690 17 11350 노원구 37.655264 127.077120 13 555803 114736 25827 18 11710 송파구 37.504853 127.114482 29 671994 302517 45375 19 11410 서대문구 37.582037 126.935666 20 324871 111615 19612 20 11470 양천구 37.527062 126.856153 15 473087 119443 26297 21 11560 영등포구 37.520641 126.913924 35 403988 362524 44512 22 11620 관악구 37.465399 126.943807 11 522292 119180 26235 23 11200 성동구 37.550675 127.040962 11 314551 162019 26130 24 11170 용산구 37.531101 126.981074 18 245411 133446 21178 >>> df.info() <class 'pandas.core.frame.DataFrame'> RangeIndex: 25 entries, 0 to 24 Data columns (total 8 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 시군구코드 25 non-null int64 1 시군구명 25 non-null object 2 위도 25 non-null float64 3 경도 25 non-null float64 4 스타벅스_매장수 25 non-null int64 5 주민등록인구 25 non-null int64 6 종사자수 25 non-null int64 7 사업체수 25 non-null int64 dtypes: float64(2), int64(5), object(1) memory usage: 1.7+ KB >>>
댓글 입력