[파이썬] #12 - pandas 다루기 - 엑셀

[파이썬] #12 - pandas 다루기 - 엑셀

엑셀 모듈 설치
# pip install xlrd xlwt
# pip install openpyxl

#pandas 모듈을 활용한 엑셀 파일 로딩처리
#pandas 모듈의 read_excel 함수
#read_excel(엑셀파일명, sheetname='읽어올 sheet이름')
# -sheetname 생략할경우 첫번째 시트를 선택
# - header 매개변수로 수정가능.
# - nrows 몇개의 row를 가지고올지지정
# - index_col 인덱스번호설정
# - isin 메소드 사용
#pandas DataFrame 의 iloc 메소드
#iloc[행의정보(시작인덱스:종료인덱스), [열의정보]]


# -*- coding: utf-8 -*-
"""
Created on Tue Dec 10 19:39:07 2019
# 엑셀 파일 Read, Write 모듈 설치(파이썬)
# pip install xlrd xlwt 
# pip install openpyxl

아나콘다에서 설치할때
#conda install xlrd xlwt 
#conda install openpyxl
"""

import pandas as pd

input_file = './data/sales_2013.xlsx'

#pandas 모듈을 활용한 엑셀 파일 로딩처리
#pandas 모듈의 read_excel 함수
#read_excel(엑셀파일명, sheetname='읽어올 sheet이름')
# -sheetname 생략할경우 첫번째 시트를 선택
sales = pd.read_excel(input_file)
print(sales)
print(sales.info())

#DataFrame 저장된 정보를 엑셀파일로 출력
output_file = './data/sales_2013_temp.xlsx'

#엑셀파일로 출력할수 있는 객체 생성 
writer = pd.ExcelWriter(output_file) #출력객체
sales.to_excel(writer, sheet_name='1st Sheet') 
# 파일저장
writer.save()


# -*- coding: utf-8 -*-
"""
Created on Tue Dec 10 19:52:11 2019

"""
import pandas as pd

fname = './data/sales_2013.xlsx'

#read_excel 메소드 header 부분이 다른경우 
# - header 매개변수로 수정가능.
# - nrows 몇개의 row를 가지고올지지정
# -index_col 인덱스번호설정
sales = pd.read_excel(fname, 
                      sheet_name= 'january_2013', 
                      header=3,
                      #nrows=3,
                      index_col=0) 
print(sales)

#sale amount 더하기
print( sales['Sale Amount'].describe() )

total = sales['Sale Amount'].sum() #합계
avg = sales['Sale Amount'].mean() #평균
print(f"총합 : {total}, 평균 : {avg}")

#sale amount 컬럼의 값이 sale Amount 의 평균 이상인 데이터만 출력
print(sales[sales['Sale Amount'] >= avg])


# -*- coding: utf-8 -*-
"""
Created on Tue Dec 10 19:59:18 2019

"""
import pandas as pd

fname = './data/sales_2013.xlsx'
sales = pd.read_excel(fname, 
                      sheet_name= 'january_2013', 
                      header=3,
                      #nrows=3,
                      index_col=0) 
print(sales)
print(sales.info())

# Purchase Date 컬럼의 값이 2013-01-01, 2013-01-31 데이터출력
# - isin 메소드 사용
dates = ['2013-01-01','2013-01-31']
result = sales[sales['Purchase Date'].isin(dates)]
print(result)

print( sales[(sales['Purchase Date']=='2013-01-01') | (sales['Purchase Date']=='2013-01-31') ] )

"""
Created on Tue Dec 10 20:34:25 2019

iloc 활용하기

"""
import pandas as pd

fname = './data/sales_2013.xlsx'
sales = pd.read_excel(fname, 
                      sheet_name= 'january_2013', 
                      header=3,
                      #nrows=3,
                      index_col=0) 
print(sales)
print(sales.info())


#customer Name  컬럼의 값이 J로 시작되는 정보만출력
# - str 속성을 사용 (Series 의 값으로 불러오기때문에 변환필요.)
print(sales[sales['Customer Name'].str[0] == 'J'])


#원하는 컬럼만 가져오기
print(sales[['Invoice Number', 'Sale Amount', 'Purchase Date']])

#pandas DataFrame 의 iloc 메소드
#iloc[행의정보(시작인덱스:종료인덱스), [열의정보]]
print(sales.iloc[0:2]) #행만 가지고 오는경우
print(sales.iloc[:, 2:]) #열을 가지고 오는경우

#연속되지 않은 열의 정보를 가지고오는경우
print(sales.iloc[:, [0,2,3]])

댓글

이 블로그의 인기 게시물

[파이썬] #2-모듈설치 및 스파이더(spyder)사용

[Tool-Tip] 에디트플러스에서 자동정렬기능 추가하기

[파이썬] #1- 아나콘다 설치, 아나콘다 파이썬 환경 만들기