Python/Python Crawling

03. 판다스 (pandas) 01

HicKee 2023. 2. 24. 14:01
import pandas as pd  # 데이터 분석 라이브러리
from matplotlib import pyplot as plt  # 데이터 시각화 라이브러리
from pandas import DataFrame

matplotlib에서의 한글 사용 (파이참 기준)

def korean_font():
    plt.rc('font', family='Malgun Gothic')
    plt.rcParams['axes.unicode_minus'] = False  # 부호를 맞춰준다

CSV 파일 읽어오기 csv는 ,(콤마)로 구분되어져 있다

def pandas_basic():
    df = pd.read_csv('../DataBaseConnect 데이터베이스 연결/test.csv', sep=',')
    print(df)
    print(type(df))  # DB등 어떤 데이터 분석에는 타입이 반드시 DataFrame 타입이어야 한다
    ax = df.plot(kind='bar')
    ax.set_title('학생성적표', fontsize=10)
    ax.set_xlabel('학생이름')
    ax.set_ylabel('각과목 점수')
    # ax.legend(loc='center')  # 범례 중앙으로
    plt.show()

엑셀로 출력

def xml_writer():
    df = DataFrame({'온도': [20.2, 22.3, 26.5, 30.3]})
    writer = pd.ExcelWriter('pandas_writer.xlsx', engine='xlsxwriter')
    df.to_excel(writer, sheet_name='sheet1')
    writer.close()  # 닫아줘야한다

엑셀로 출력, 차트를 포함

def xml_writer2():
    df = DataFrame({'온도': [20.2, 22.3, 26.5, 30.3]})
    writer = pd.ExcelWriter('pandas_wlsx_chart.xlsx', engine='xlsxwriter')
    df.to_excel(writer, sheet_name='sheet1')
    workbook = writer.book
    worksheet = writer.sheets['sheet1']
    # chart 객체 생성
    chart = workbook.add_chart({'type': 'column'})
    # chart 에 출력할 데이터 선택
    chart.add_series({'values': '=sheet1!$B$2:$B$6'})
    # 특정 위치에 chart 추가
    worksheet.insert_chart('D2', chart)
    # 리소스 해제
    writer.close()

이름, 전화번호, 성별, 나이, 주소, 학년, 점수
데이터 3개를 가지는 dataframe 생성
엑셀에 저장, 차트를 추가

def xml_std_writer():
    df = DataFrame({
        '이름': ['김길동', '박길동', '이길동', '최길동'],
        '주소': ['중구', '남구', '서구', '동구'],
        '학년': ['1학년', '2학년', '3학년', '1학년'],
        '점수': [70, 80, 90, 67],
    })

    df.set_index('이름', inplace=True)  # 이름을 인덱스로 지정함
    writer = pd.ExcelWriter('../DataBaseConnect 데이터베이스 연결/std_writer.xlsx', engine='xlsxwriter')
    df.to_excel(writer, sheet_name='sheet1')
    writer.close()  # 닫아줘야한다
    return df
def xml_std_chartwriter():
    df = DataFrame({
        '이름': ['김길동', '박길동', '이길동'],
        '주소': ['중구', '남구', '서구'],
        '학년': ['1학년', '2학년', '3학년'],
        '점수': [70, 80, 90],

        # '김길동': ['4857', '중구', '남', '1학년', 79],
        # '박길동': ['1236', '남구', '남', '2학년', 80],
        # '이길동': ['8977', '서구', '여', '3학년', 90]
    })
    df.set_index('이름', inplace=True)
    writer = pd.ExcelWriter('std_wlsx_chart.xlsx', engine='xlsxwriter')
    df.to_excel(writer, sheet_name='sheet1')

    workbook = writer.book
    worksheet = writer.sheets['sheet1']
    # chart 객체 생성
    chart = workbook.add_chart({'type': 'column'})

    # # chart 에 출력할 데이터 선택
    chart.add_series({'name': '=sheet1!$A$2:$A$2', 'categories': '=sheet1!$D$1:$D$1', 'values': '=sheet1!$D$2:$D$2'})
    chart.add_series({'name': '=sheet1!$A$3:$A$3', 'categories': '=sheet1!$D$1:$D$1', 'values': '=sheet1!$D$3:$D$3'})
    chart.add_series({'name': '=sheet1!$A$4:$A$4', 'categories': '=sheet1!$D$1:$D$1', 'values': '=sheet1!$D$4:$D$4'})
    # # 특정 위치에 chart 추가
    worksheet.insert_chart('F2', chart)
    # # 리소스 해제
    writer.close()
def xml_std_chartwriter(dataframe):
    df = dataframe
    # df.set_index('이름', inplace=True)
    writer = pd.ExcelWriter('std_wlsx_chart.xlsx', engine='xlsxwriter')
    df.to_excel(writer, sheet_name='sheet1')

    workbook = writer.book
    worksheet = writer.sheets['sheet1']
    # chart 객체 생성
    chart = workbook.add_chart({'type': 'column'})

    # # chart 에 출력할 데이터 선택
    chart.add_series({'name': '=sheet1!$A$2:$A$2', 'categories': '=sheet1!$D$1:$D$1', 'values': '=sheet1!$D$2:$D$2'})
    chart.add_series({'name': '=sheet1!$A$3:$A$3', 'categories': '=sheet1!$D$1:$D$1', 'values': '=sheet1!$D$3:$D$3'})
    chart.add_series({'name': '=sheet1!$A$4:$A$4', 'categories': '=sheet1!$D$1:$D$1', 'values': '=sheet1!$D$4:$D$4'})
    chart.add_series({'name': '=sheet1!$A$5:$A$5', 'categories': '=sheet1!$D$1:$D$1', 'values': '=sheet1!$D$5:$D$5'})
    # # 특정 위치에 chart 추가
    worksheet.insert_chart('F2', chart)
    # # 리소스 해제
    writer.close()
def xml_std_chartwriter(dataframe):
    df = dataframe
    # df.set_index('이름', inplace=True)
    writer = pd.ExcelWriter('../DataBaseConnect 데이터베이스 연결/std_wlsx_chart.xlsx', engine='xlsxwriter')
    df.to_excel(writer, sheet_name='sheet1')

    workbook = writer.book
    worksheet = writer.sheets['sheet1']
    # chart 객체 생성
    chart = workbook.add_chart({'type': 'column'})

    # # chart 에 출력할 데이터 선택
    chart.add_series({'name': '=sheet1!$D$1:$D$1', 'categories': '=sheet1!$A$2:$A$5', 'values': '=sheet1!$D$2:$D$5'})
    # # 특정 위치에 chart 추가
    worksheet.insert_chart('F2', chart)
    # # 리소스 해제
    writer.close()
 

'Python > Python Crawling' 카테고리의 다른 글

05. 판다스 (pandas) 03  (0) 2023.03.05
04. 판다스 (pandas) 02  (0) 2023.03.05
02. 셀레니움 selenium 02  (0) 2023.02.19
02. 셀레니움 selenium 01  (0) 2023.02.15
01. 뷰티풀 수프 BeautifulSoup 02  (0) 2023.02.13