1. 판다스의 자료 구조와 장점
Pandas에서 자료구조는
시리즈(Series)라 불리는 Columnal 데이터와
DataTable과 유사한 형태의 테이블 데이터인 데이터프레임(DataFrame)이 있다.
기본 자료구조가 정해진 컬럼을 주렁주렁 달고 다니는 row 형태가 아닌 column 형태라서
자료 가공을 하면서 조건에 맞는지 여부를 따질 때, 다른 컬럼을 소환하지 않고 작업할 수 있다.
따라서 작업 속도가 빠르고 데이터 관련 가공은 Pandas를 많이 쓴다.
비슷한 궤로 통계를 이용한 데이터 가공에도 강하다.
OLS 같은 통계추정량을 구할 때도 필요한 coefficients 이외는 residual로 처리하는 방식이기 때문에
회귀방정식에 넣는 column만 바로 적용될 수 있다.
[역으로 기존 RDB 형식으로만 작업하면 굉장히 비효율적으로 수행할 거 같다.]
2. 현재 사용하는 판다스 버전
터미널에서 pip install pandas=={버전}를 하면 numpy는 종속이라서 같이 깔린다.
현재 연습용으로 버전은 1.2.4를 쓰고 있다.
import numpy as np
import pandas as pd
데이터프레임에 데이터를 담기 위해 Excel을 썼는데 DRM에 걸려 판다스로 바로 읽는 것은 불가했다.
import xlwings as xw
그래서 xlwings도 깔아줬다.
3. 컬럼 추가 방법
# 엑셀 파일 이름
filename = 'test2.xlsx'
# 엑셀 인스턴스 생성
app = xw.App(visible=False)
# 엑셀 읽은 객체 생성
wb = xw.Book(filename)
# 데이터프레임 형태로 읽기
df = wb.sheets(1).used_range.options(pd.DataFrame, index=False).value
# 인스턴스 종료
app.kill()
xlwings를 써서 읽으면 엑셀이 켜진다. 그래서 인스턴스를 잡고 닫을 수 있게 했다.
자료에 따로 index가 따로 없으면 index=False로 해야 한다. (기본값은 True)
df도 dt랑 비슷해서 df['컬럼명'][1] 같은 식으로 하나의 cell value를 가져올 수 있다.
[다만 columnal이기 때문에 기준이 되는 column이 먼저 쓰임]
# 컬럼 추가
df['Test'] = np.where(df['Column1'].isnull(), "값 없음", df['Column2'])
컬럼의 기본값 필터링을 위해선 numpy 객체를 쓴다.
where 메서드를 쓰고 3항연산자 형태로 입력하면 기본값이 조건에 맞게 구성된다.
4. row 필터링
# 필터링
df = df[(df['Test'] != '값 없음')]
파이썬 문법 중 특이하면서도 편리한 부분은 리스트 형태의 변수 안에 조건만 쓰면 알아서 필터링 된다는 점이다.
row 필터링은 컬럼명을 쓰는 부분에 해당하는 컬럼 조건을 써주면 된다.
string 관련 여부를 체크하려면 하기와 같이 쓴다.
df = df[df['abc'].str.contains("포함여부 확인하고 싶은 str")]
'파이썬' 카테고리의 다른 글
[Python] 유튜브 검색어에 대한 영상 리스트의 데이터 가져오기 (0) | 2022.08.22 |
---|---|
[Pandas] Series에서 각 row의 value를 편집해서 필터링 해야 하는 경우 (0) | 2022.08.04 |
[Pandas] np.where 에서 함수를 태워야 될 때 (0) | 2022.07.28 |
[python] 논리 연산자 사용에 관해 (0) | 2022.07.28 |
[Python] 파이썬 모듈과 함수 호출 (0) | 2022.07.21 |