<jupyter_start><jupyter_text>07. Population  1. 배경- 목표    - 1. 인구 소멸 위기 지역파악    - 2. 인구 소멸 위기 지역의 지도 표현    - 3. 지도 표현에 대한 카르토그램 표현  2. 데이터 읽고 인구 소멸 지역 계산하기<jupyter_code>import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import set_matplotlib_hangul
import warnings

warnings.filterwarnings(action="ignore")
%matplotlib inline<jupyter_output><empty_output><jupyter_text>---  fillna()<jupyter_code>datas = {
    "A": np.random.randint(1, 45, 8),
    "B": np.random.randint(1, 45, 8),
    "C": np.random.randint(1, 45, 8),

}
datas
fillna_df = pd.DataFrame(datas)
fillna_df
fillna_df.loc[2:4, ["A"]] = np.nan
fillna_df.loc[3:5, ["B"]] = np.nan
fillna_df.loc[4:7, ["C"]] = np.nan
fillna_df
fillna_df.fillna(method="ffill", axis=1)
population = pd.read_excel("../data/07_population_raw_data.xlsx", header=1)
population.fillna(method="pad", inplace=True)
population
population.info()
# 컬럼 이름 변경

population.rename(columns= {"행정구역(동읍면)별(1)": "광역시도",
            "행정구역(동읍면)별(2)": "시도",
            "계": "인구수",
    
    }, inplace=True)
population.tail()
population.head()
# 소계 제거

population = population[population["시도"] != "소계"]
population.head()
population.is_copy = False

population.rename(
    columns={
        "항목":"구분"

    }, inplace=True

)
population
population.loc[population["구분"] == "총인구수 (명)", "구분"] = "합계"
population.loc[population["구분"] == "남자인구수 (명)", "구분"] = "남자"
population.loc[population["구분"] == "여자인구수 (명)", "구분"] = "여자"
population
# 소멸 지역을 조사하기 위한 데이터

population["20-39세"] = (
    population["20 - 24세"] + population["25 - 29세"] + population["30 - 34세"] + population["35 - 39세"]

)

population["65세 이상"] = (
    population["65 - 69세"] + population["70 - 74세"] + population["75 - 79세"] + population["80 - 84세"] +
    population["85 - 89세"] + population["90 - 94세"] + population["95 - 99세"] + population["100+"]
    

)
population
# pivot_table

pop = pd.pivot_table(
    data=population,
    index=["광역시도", "시도"],
    columns=["구분"],
    values=["인구수", "20-39세", "65세 이상"],


)
pop
# 소멸 비율 계산

pop["소멸비율"] = pop["20-39세", "여자"] / (pop["65세 이상", "합계"] /2)
pop
# 소멸 위기 지역 칼럼 생성

pop["소멸위기지역"] = pop["소멸비율"] < 1.0
pop
pop[pop["소멸위기지역"] == True].index.get_level_values(1)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.19740376007162042, 'fraction_numerical': 0.044762757385854966, 'mean_word_length': 4.045146726862303, 'pattern_counts': {'":': 7, '<': 10, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '2', 'dir': 'jupyter-structured-clean-dedup', 'id': '113099', 'license': 'MIT', 'n_tokens_mistral': 1158, 'n_tokens_neox': 1267, 'n_words': 192, 'path': '07. Population.ipynb', 'repo_name': 'Hyoshin-Park/Test', 'size': '2234'}