-
2022년 12월 1일 목요일(엑셀파일을 파이썬으로 읽어와서 작업하기)개발/개발일지(국비지원) 2022. 12. 1. 21:46728x90
pandas 표형태의 데이터 저장모듈이다.
Series와 DataFrames 두가지형태를 가지고있다.
pandas를 사용하기위해서
import pandas as pd (별명으로 pd를 설정하여 작성에 용이하게 설정한다)
40-45행
튜플형식의 데이터를 Series형식의 데이터로 변환해준다.
sr.index 를 출력하면
결과)
['이름', '생년월일', '성별', '학생여부']
가 출력된다.
sr.values를 출력하면
결과)
['홍길동' '1991-01-25' '남' True]가 출력된다.
89행 결과
나이 성별 학교
홍길동 15 남 서울중
성춘향 17 여 서울여고
이몽룡 17 남 서울고94-95행 결과
나이 성별 학교
학생1 15 남 서울중
학생2 17 여 서울여고
학생3 17 남 서울고97-99행 결과
age gender school
학생1 15 남 서울중
학생2 17 여 서울여고
학생3 17 남 서울고101-104행 결과
나이 gender school
학생1 15 남 서울중
학생2 17 여 서울여고
학생3 17 남 서울고117-118행 결과
수학 영어 음악 체육
홍길동 90 98 85 100
이몽룡 80 88 95 90
김삿갓 70 95 100 90126행
수학 80.000000
영어 93.666667
음악 93.333333
체육 93.333333129행-132행
df.mean['컬럼명'] : 해당컬럼의 평균을 구할수있다.
df['수학'].mean() : 컬럼의 평균을 구하는 2번째방법
df['컬럼명'] : 해당 컬럼명의 데이터들을 모두 조회할수있다.
163행-173행
행을조회할때는 df.loc['행명'] 을통해 조회하는방법
df.iloc[0]: 인덱스 순서를 통해 조회하는방법 2가지가있다.
201행-206행
김삿갓의 총점: 355
김삿갓의 평균: 88.75
김삿갓의 중간값: 92.5
김삿갓의 표준편차: 13.149778198382917df.loc['김삿갓'].describe()의 결과
간략한정보를 출력해준다.
Out[99]:
count 4.000000
mean 88.750000
std 13.149778
min 70.000000
25% 85.000000
50% 92.500000
75% 96.250000
max 100.000000
Name: 김삿갓, dtype: float64데이터프레임을 복사하는 방법은간단하다.
df2 = df(데이터프레임) 하면
df2는 데이터프레임이 복사가됐다.
하지만, 이렇게 복사한경우
df의 값을 변경하면
df2도 똑같이 변경될것이다.
이것을 방지하기위해
깊은복사를 사용한다.
219-221행
df3=df[:]로 깊은복사를하게되면
df3와 df는 서로 다른객체가 되면서
df의 값을 변경해도 df3는 처음복사된값을 유지한다.
228-230행
행과 열을제거할때는
df.drop(['열/행의이름'],axis=0(행을제거할떄),1(열을제거할때),inplace=True)를 사용한다.
axis=0 / 1
0일때는 행 / 1일때는 열 기억하자
244-245행
깊은복사의 두번째방식이다.
df4 = df.copy()로 설정해준다.
251-254행
drop의 제거방법과 달리
del df4['컬럼명'],df['컬럼명2']를 사용해서
두가지의 컬럼을 동시에 제거해줄수있다.
256-260행
drop를 이용해서
두가지이상의 컬럼을 동시에 제거해주는 방법이다.
조회를 하는 여러가지방법들이다.
순서를가지고, 인덱스를 가지고 조회를 할수있다.
한가지 인덱스에대해 여러가지 컬럼을 조회할수도있다.
311행-318행
313행
pandas모듈을 통해
pd.read_csv('파일경로')
csv파일을 파일의경로를설정하면 불러올 수 있다.
불러온 파일에대해
info() : 간략한 정보
head() :상위 5건을 조회할수있다
tail(): 하위 5건을 조회할수있다.
329행-331행
기존 이러한형태를
장소 LON LAT
0 제주국제공항 126.496217 33.505314
1 돔베돈 126.526687 33.516084
2 공룡랜드 126.433153 33.442382
3 협재해수욕장 126.240463 33.404218
4 한림공원 126.239262 33.390101
5 유리의성 126.273744 33.315127
6 오설록티뮤지엄 126.289451 33.306537
7 테디베어뮤지엄 126.408691 33.267972
8 저녁_오성식당 126.414549 33.256059
9 중문관광단지 126.412361 33.249186
10 숙소_서귀포KAL호텔 126.580954 33.248020set_index('컬럼명',inplace=True)로 인덱스로 변경시킬 수 있다.
LON LAT
장소
제주국제공항 126.496217 33.505314
돔베돈 126.526687 33.516084
공룡랜드 126.433153 33.442382
협재해수욕장 126.240463 33.404218
한림공원 126.239262 33.390101
유리의성 126.273744 33.315127
오설록티뮤지엄 126.289451 33.306537
테디베어뮤지엄 126.408691 33.267972
저녁_오성식당 126.414549 33.256059
중문관광단지 126.412361 33.249186
숙소_서귀포KAL호텔 126.580954 33.248020357-362행
현재데이터 df데이터의 내용을 새로운 csv파일로 저장할수있다(다른이름으로 저장)
df.to_csv('새파일이름',index=False) ->인덱스가 파일에추가되지않는다.
df.to_csv('새파일이름') index를 기술하지않으면 기본값인 True가 들어가 인덱스가 포함된다.
377-379행
data폴더의 sales._2015.xlsx 파일을 읽어온다
그중 january_2015시트만 읽어오며 컬럼은 설정하지않는다.
sheet_name=None을 기술하면 모든시트 데이터를 가져온다.
394-396행
현재 df는 모든시트의 정보를 가지고있다.
df는 딕셔너리 객체이다.
반복문을통해 name에는 시트의 이름
data에는 해당시트의 데이터들을 출력해준다.
outexcel에 새로운 파일을 생성할때에 경로를 설정해둔다.
df500의 데이터와 data의 데이터를
data/pd_sale_2015.xlsx파일에 저장하는데
각각 2015_500시트의 이름과 2015시트의 이름으로
나눠서 설정해주었다.
마지막으로 outexcel.save()를 통해 해당 값들을 담은 엑셀파일을 저장/생성된다.
엑셀파일들을 파이썬으로 읽어와서
행,열에 원하는값을 조회 , 수정 , 삭제하는 여러가지 방법들에대해 배웠다.
또한 원하는 데이터들을 새로운 엑셀파일로 저장하는 방법도 학습했다.
728x90'개발 > 개발일지(국비지원)' 카테고리의 다른 글
2022년 12월 2일 금요일(엑셀파일 읽어오기,쓰기,데이터의 시각화(그래프)) (0) 2022.12.02 2022년 12월 2일 금요일(엑셀파일 불러오기,수정관련 문제풀이) (0) 2022.12.02 2022년 12월 1일 목요일(파일/폴더 복사,알고리즘,테이블조회 문제풀이) (2) 2022.12.01 2022년 11월 30일 수요일 (클래스 문제,알고리즘,정규식문제 풀이) (1) 2022.11.30 2022년 11월 30일 수요일(엑셀의 파일 읽기와 DB와 연동하여 조회,수정,삭제,추가등의 기능) (0) 2022.11.30