https://pandas.pydata.org/pandas-docs/stable/index.html
pandas documentation — pandas 1.0.3 documentation
API reference The reference guide contains a detailed description of the pandas API. The reference describes how the methods work and which parameters can be used. It assumes that you have an understanding of the key concepts.
pandas.pydata.org
Pandas(판다스)는 파이썬에서 데이터 프레임으로 다루기 위해 필요한 모듈이다. (파이썬의 스프레드시트, 파이썬의 엑셀이라 보면 됨.)
(정확히는 판다스는 (1) Series, (2) Data Frame, (3) Panel 3가지 데이터 구조를 사용한다.)
물론 가장 많이 사용하는 것은 데이터프레임이다.
import pandas as pd
pd.DataFrame(ABC, columns=['']) : ABC 리스트를 데이터프레임으로 만들기.
1 ) 각각의 column으로 넣기 (데이터프레임 합치기 포함 : concat)
import pandas as pd
math = ['70', '80', '60', '100','95']
english = ['85', '80', '90', '80','100']
history = ['70', '90','100', '90', '90']
# 1. 각각의 리스트를 데이터프레임으로 만들기.
math_df = pd.DataFrame(math, columns=["수학"])
english_df = pd.DataFrame(english, columns=["영어"])
history_df = pd.DataFrame(history, columns=["역사"])
# 2. 각각의 데이터프레임을 하나로 합치기.
total = pd.concat([math_df,english_df,history_df], axis = 1)
total
2 ) 각각의 row으로 넣기 (사후 컬럼헤더 사후 추가 하기 : columns)
# 매트릭스 배열이 각각 한 행으로 들어간다.
data = [
['1000', 'Steve', 90.72],
['1001', 'James', 78.09],
['1002', 'Doyeon', 98.43],
['1003', 'Jane', 64.19],
['1004', 'Pilwoong', 81.30],
['1005', 'Tony', 99.14],
]
df = pd.DataFrame(data)
df
3 ) 딕셔너리로 만들기 (조회하기 포함 : head, tail, 특정 컬럼 조회하기, 컬럼 명 조회하기)
# 딕셔너리로 생성하기
data = { '학번' : ['1000', '1001', '1002', '1003', '1004', '1005'],
'이름' : [ 'Steve', 'James', 'Doyeon', 'Jane', 'Pilwoong', 'Tony'],
'점수': [90.72, 78.09, 98.43, 64.19, 81.30, 99.14]}
df = pd.DataFrame(data)
df
ABC.head(2) : ABC 데이터프레임에서 첫 2줄만 보기.
ABC.tail(2) : ABC 데이터프레임에서 끝 2줄만 보기.
ABC.columns = ['aaa','bbb','ccc'] 로 컬럼 헤더를 지정할 수도 있지만
ABC.columns 를 하면 컬럼 헤더 조회를 할 수도 있다.
컬럼 헤더를 변경하는 또 다른 방법인 .rename은 inplace를 설명해야 하는 관계로 다음 링크를 참고하도록 한다.
2020/04/26 - [개발자/Python] - Python (파이썬) inplace (.rename)
pd.concat([ABC,DEF,GHI], axis = 1) : ABC,DEF,GHI 데이터프레임을 하나로 합치기. (axis = 0 : 위아래로, axis = 1 : 좌우로)
(위아래로 붙이는 경우는 아직 데이터프레임이 아닌 리스트 상태라면 .append를 이용해 추가한 다음 한 번에 데이터프레임으로 만들 수도 있다.)
4 - 1 ) PC에서 데이터 파일 불러오기
pd.read_csv("../../../ABC.csv") : ABC.csv를 판다스로 불러오기. (한글 포함 파일 에러 발생시, encoding='ms949' 또는 'cp949' 옵션을 준다.)
import pandas as pd # 판다스를 불러온다.
pd.read_csv("../exampleCode/dataset/kopo_product_volume0.csv")
pd.read_csv("../../../ABC{}.csv".format(i)) : ABCi.csv를 판다스로 불러오기. (ABC1, ABC2, ... 이렇게 파일이 있을 경우 반복문을 통해 불러올 수 있다. 단, 중간에 비는 번호가 있을 경우를 대비해 try except로 예외처리를 해줘야한다.)
import pandas as pd # 판다스를 불러온다.
dataSum = [] # 데이터를 불러와 담을 빈 리스트 생성.
dataFolder = "../exampleCode/dataset/" # 폴더의 주소를 preFix로 선언.
targetFile = "kopo_product_volume{}.csv"
for i in range(0, 3):
# 예외 발생 가능한 로직.
try:
# 데이터파일을 리스트에 추가.
targetFileAddress = dataFolder + targetFile.format(i)
load = pd.read_csv(targetFileAddress)
dataSum.append(load)
# 예외 발생시 로직.
except Exception as e: # 그냥 except pass만 해도 되는데 이 경우 어떤게 오류 났는지를 알 수가 없다. e를 붙여주면 오류를 출력해준다.
print(e)
print(targetFileAddress)
pass
dataSum
4 - 2 ) PC에 데이터 파일로 저장하기
ABC.to_csv("./filename.csv", index=False, encoding="UTF-8") : ABC데이터프레임을 filename.csv 로 저장한다. (판다스가 자동으로 인덱스를 1열에 삽입하여 저장하기 때문에 일반적으로 , index+False 옵션은 항상 주는 것이 좋다.)
(내보낼 수 있는 종류는 csv 외에도 clipboard, dict, excel, html, json, latex, markdown, numpy, pickle, records, sql,string 등 다양하다.)
(판다스를 이용해 내보낸 CSV파일)
파일을 저장할 때 데이터가 누적해서 저장되지 않는다. 기존 파일을 덮어쓴다. 따라서 저장할 때는 혹시 해당 파일명으로 다른 지우면 안 되는 파일이 있지 않은가 반드시 확인해야한다. 만약, 데이터 누적을 원한다면 2개를 모두 불러와 합친 다음 내보내면 된다.
내보내기 설정 주요 옵션
내용 | 비고 | |
sep 또는 delimiter | 구분자를 지정 (csv파일에서 매우 중요) | "," 콤마 / "\t" 탭 등을 사용 |
encoding | binary 언어 인코딩 방식을 설정 | 윈도우 한글일 경우 "ms949", "cp949" |
skiprows | 무시할 행 개수 |
5 ) 데이터베이스에서 불러오거나 저장하기
pd.read_sql_query("Query", engine) : "Query"를 이용해 판다스로 불러올 수 있다. 접속은 engine을 이용한다. (테이블에서 원하는 것만 불러올 수 있다.)
pd.read_sql_table(table_name = ABC, con = engine) : 테이블 이름이 ABC인 것을 engine을 이용해 판다스로 불러오기. (테이블 전체를 불러온다.)
ABC.to_sql(name = "Hello", con = engine) : ABC 데이터프레임을 engine을 이용해 DB에 'Hello'라는 테이블 이름으로 저장한다. (SQL 방식)
(위 2개는 필수 옵션이고, 부가 옵션으로는 index = False, if_exists='replace' 등이 있다.)
d6tstack.utils.pd_topsql(df = ABC, uri = "engine 만들 때 사용하는 URL", table_name = "Hello") : ABC 데이터프레임을 "engine 만들 때 사용하는 URL"을 이용해 "Hello"라는 테이블 이름으로 저장한다.
자세한 사용법은 예제를 참조합니다.
예제 :
2020/04/26 - [개발자/Python] - Python (파이썬) DB 엔진을 활용, Pandas로 SQL을 이용해 불러오고 내보내기
좀 더 다양한 사용법과 예제가 필요하다면 해당 블로그를 보면 좋을 것 같다.
https://doorbw.tistory.com/172
pandas(판다스) 기초 정리
Pandas_clear 안녕하세요. 문범우입니다. 이번 포스팅에서는 파이썬 라이브러리인 pandas(판다스)에 대해서 알아보도록 하겠습니다. 해당 내용은 flearning의 김길호님의 강의를 바탕으로 작성되..
doorbw.tistory.com
'개발자 > Python' 카테고리의 다른 글
Python (파이썬) 문자열로 구성된 리스트의 합, 평균 등을 계산하고 형변환하는 함수를 만들어보자 (0) | 2020.04.26 |
---|---|
Python (파이썬) 깃허브에서 가져오기 (0) | 2020.04.26 |
for문 별찍기 3중 트리 (0) | 2020.04.25 |
Python (파이썬) 예외처리 try except (0) | 2020.04.25 |
Python (파이썬) 파이썬 패키지 만들어 배포하기 pypi.org - 1편. 함수 패키지 만들기 (0) | 2020.04.25 |