Link
Recent Posts
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 빅분기실기
- 2회기출
- 파이썬셋
- 실기
- 파이썬딕셔너리
- 행별속성합계
- 작업형2
- 워드클라우드
- 백준1920
- 공공빅데이터청년인턴
- 태블로
- 파이썬튜플
- 파이썬
- 딕셔너리
- 파이썬입출력
- 백준 2164
- konlpy
- set시간복잡도
- 공빅데
- 빅데이터분석기사
- csv병합
- 셋
- 파이썬AHP
- 예측모델링
- 공빅데기관매칭
- 리스트
- 튜플
- 컨테이너
- dataq
- 빅분기
- Today
- Total
Data Science
파이썬 조건에 따라 계산된 컬럼 생성하기 본문
조건에 따라 계산된 컬럼 생성하기¶
목적 : 설치가능면적 ~ 공원 면적 * X 컬럼을 새로 생성하려함¶
In [1]:
# 필요한 라이브러리, 모듈 import
import pandas as pd
In [2]:
# 불러와 데이터프레임으로 변환
file_name = '인천도시공원정보표준데이터_2.csv'
df = pd.read_csv(file_name)
df.head(2)
Out[2]:
관리번호 | 공원명 | 공원구분 | 소재지도로명주소 | 소재지지번주소 | 위도 | 경도 | 공원면적 | 공원보유시설(운동시설) | 공원보유시설(유희시설) | 공원보유시설(편익시설) | 공원보유시설(교양시설) | 공원보유시설(기타시설) | 지정고시일 | 관리기관명 | 전화번호 | 데이터기준일자 | 제공기관코드 | 제공기관명 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 28170-00084 | 도담어린이공원 | 어린이공원 | NaN | 인천광역시 미추홀구 용현동 604-1 | 37.447003 | 126.643675 | 4578.0 | NaN | NaN | NaN | NaN | NaN | 40933 | 인천광역시 미추홀구청 | 032-880-4504 | 44057 | B553949 | 인천광역시미추홀구시설관리공단 |
1 | 28170-00085 | 화동공원 | 근린공원 | NaN | 인천광역시 미추홀구 도화동 1007-3 | 37.473048 | 126.664747 | 20181.0 | 다목적 운동시설 | 조합놀이대 | 화장실 | NaN | 분수대 | 43586 | 인천광역시 미추홀구청 | 032-880-4504 | 44057 | B553949 | 인천광역시미추홀구시설관리공단 |
[공원구분]에서 분석에 제외되는 항목을 삭제¶
In [3]:
# 공원구분 종류 확인
groups = df.groupby(df['공원구분'])
groups.size()
Out[3]:
공원구분 근린공원 195 기타 1 묘지공원 1 문화공원 7 소공원 43 수변공원 4 어린이공원 467 체육공원 9 dtype: int64
In [4]:
# 기타 공원 삭제
idx_nm = df[df['공원구분'] == '기타'].index
df = df.drop(idx_nm)
In [5]:
# 묘지 공원 삭제
idx_nm = df[df['공원구분'] == '묘지공원'].index
df = df.drop(idx_nm)
In [6]:
# 공원구분 종류 확인
groups = df.groupby(df['공원구분'])
groups.size()
Out[6]:
공원구분 근린공원 195 문화공원 7 소공원 43 수변공원 4 어린이공원 467 체육공원 9 dtype: int64
'면적' 함수 생성¶
In [7]:
# 공원면적 to 시설 설치 가능 면적으로 변환 하는 함수
def 면적(df):
if df['공원구분'] == '근린공원' :
area = df['공원면적'] * 0.4
return area
elif df['공원구분'] == '문화공원' :
area = df['공원면적'] * 1.0
return area
elif df['공원구분'] == '소공원' :
area = df['공원면적'] * 0.2
return area
elif df['공원구분'] == '수변공원' :
area = df['공원면적'] * 0.4
return area
elif df['공원구분'] == '어린이공원' :
area = df['공원면적'] * 0.6
return area
elif df['공원구분'] == '체육공원' :
area = df['공원면적'] * 0.5
return area
else :
print("ERROR !!!")
apply 함수에 적용¶
In [8]:
# 조건(공원구분)에 따라 계산된 새로운 컬럼(시설설치가능면적) 추가
df['시설설치가능면적'] = df.apply(면적, axis=1)
In [9]:
df.head(2)
Out[9]:
관리번호 | 공원명 | 공원구분 | 소재지도로명주소 | 소재지지번주소 | 위도 | 경도 | 공원면적 | 공원보유시설(운동시설) | 공원보유시설(유희시설) | 공원보유시설(편익시설) | 공원보유시설(교양시설) | 공원보유시설(기타시설) | 지정고시일 | 관리기관명 | 전화번호 | 데이터기준일자 | 제공기관코드 | 제공기관명 | 시설설치가능면적 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 28170-00084 | 도담어린이공원 | 어린이공원 | NaN | 인천광역시 미추홀구 용현동 604-1 | 37.447003 | 126.643675 | 4578.0 | NaN | NaN | NaN | NaN | NaN | 40933 | 인천광역시 미추홀구청 | 032-880-4504 | 44057 | B553949 | 인천광역시미추홀구시설관리공단 | 2746.8 |
1 | 28170-00085 | 화동공원 | 근린공원 | NaN | 인천광역시 미추홀구 도화동 1007-3 | 37.473048 | 126.664747 | 20181.0 | 다목적 운동시설 | 조합놀이대 | 화장실 | NaN | 분수대 | 43586 | 인천광역시 미추홀구청 | 032-880-4504 | 44057 | B553949 | 인천광역시미추홀구시설관리공단 | 8072.4 |
In [10]:
# 데이터프레임을 csv로 저장
df.to_csv('인천도시공원정보표준데이터_3.csv',index=False , sep=',', encoding='cp949')
In [ ]:
'데이터분석' 카테고리의 다른 글
SNS 텍스트 분석(konlpy) 및 워드클라우드 - 랜덤표본 (0) | 2021.10.15 |
---|---|
형태소 분석 참고 링크 (0) | 2021.09.14 |
판다스 조건에 따라 행 삭제하기 (0) | 2021.08.28 |
가중치 적용, 총점, 순위 산정, folium 으로 지도에 나타내기 (0) | 2021.08.28 |
파이썬 AHP 분석 (0) | 2021.08.19 |
Comments