본문 바로가기
프로그램

[파이썬] 문제 : pandas로 특정 cell 합계 계산 plot 그리기

by 오디세이99 2022. 11. 26.
728x90
반응형

(문제)

x축을 월 화 수 목 금 토 일로 하고 파란색 체크된 셀만 막대그래프로 시각화.
체크된 셀에 수치 단위를 y축
 
 
(방법)

자치구별/용산구는 조건으로 찾고

월~일까지의 데이터는 지정된 위치(인덱스)로 처리 했습니다.

필요하면 월~일 명으로 찾아도 될 것 같습니다(이 코드에는 없음)

 

import pandas as pd
import matplotlib.pyplot as plt

raw_data = {'구분별(1)': ['전체', '권역별', '권역별', '자치구별', '자치구별', '자치구별'],
            '구분별(2)': ['소계', '강남', '강북', '종로구', '중구', '용산구'],
            '소계': [1424.5, 715.9, 708.6, 43.3, 42.6, 62.1],
            '소계': [24.2, 24.7, 23.7, 23, 19.9, 27],
            '월': [23.9, 0, 0, 0, 0, 27.4],
            '화': [23.9, 0, 0, 0, 0, 26.6],
            '수': [23.9, 0, 0, 0, 0, 26.4],
            '목': [23.9, 0, 0, 0, 0, 26.2],
            '금': [23.9, 0, 0, 0, 0, 25.4],
            '토': [23.9, 0, 0, 0, 0, 26.7],
            '일': [23.9, 0, 0, 0, 0, 30]
           }

df = pd.DataFrame(raw_data)


df2 = df[(df['구분별(1)'] == '자치구별') & (df['구분별(2)'] == '용산구')]    # 구분별(1), 2) 조건을 찾기


fig = plt.figure(figsize=(10, 6))            # plot 크기 설정
plt.rcParams['font.family'] = 'NanumGothic'  # 한글 가능하도록 폰트 설정
f_size = 16                  # 제목 폰트 크기
x_column = 'X축'
y_column = 'Y축'
x = list(df2.columns[3:])           # 데이터명
y = list(df2.iloc[0][3:])           # 데이터
plt.bar(x, y)                # bar chart 그리기
plt.title("제목",fontsize=f_size)  # 제목 쓰기
plt.show()

 

pandas의 plot으로 그리기

import pandas as pd
import matplotlib.pyplot as plt

raw_data = {'구분별(1)': ['전체', '권역별', '권역별', '자치구별', '자치구별', '자치구별'],
            '구분별(2)': ['소계', '강남', '강북', '종로구', '중구', '용산구'],
            '소계': [1424.5, 715.9, 708.6, 43.3, 42.6, 62.1],
            '소계': [24.2, 24.7, 23.7, 23, 19.9, 27],
            '월': [23.9, 0, 0, 0, 0, 27.4],
            '화': [23.9, 0, 0, 0, 0, 26.6],
            '수': [23.9, 0, 0, 0, 0, 26.4],
            '목': [23.9, 0, 0, 0, 0, 26.2],
            '금': [23.9, 0, 0, 0, 0, 25.4],
            '토': [23.9, 0, 0, 0, 0, 26.7],
            '일': [23.9, 0, 0, 0, 0, 30]
           }

df = pd.DataFrame(raw_data)


df2 = df[(df['구분별(1)'] == '자치구별') & (df['구분별(2)'] == '용산구')]    # 구분별(1), 2) 조건을 찾기

fig = plt.figure(figsize=(10, 6))            # plot 크기 설정
plt.rcParams['font.family'] = 'NanumGothic'  # 한글 가능하도록 폰트 설정

df2.iloc[0][3:].plot.bar(rot=0)

728x90
반응형

댓글