Pandas는 Numpy보다 처음보는 문법이 많았고 내용도 방대해 내용이 상당히 길다.
말이 정리지 사실상 강의 내용의 대부분을 따라쳐보고 출력을 확인하는 과정을 포스팅해보겠다.
Dataframe functions
loc, iloc
loc은 dataframe의 index를 기반으로
iloc는 dataframe의 row기준 순서를 기반으로 행을 슬라이싱 or 인덱싱한다.
체크해야할 부분은 괄호로 ( )가 아니라 [ ]를 쓴다는 점!
temp = [[i+1,i+2,i+3,i+4,i+5]for i in range(10)]
df = pd.DataFrame(temp).T
df.index = ["a","b","c","d","e"]
prnt(df)
print(df.loc["a"])
print(df.iloc[0])
0 1 2 3 4 5 6 7 8 9
a 1 2 3 4 5 6 7 8 9 10
b 2 3 4 5 6 7 8 9 10 11
c 3 4 5 6 7 8 9 10 11 12
d 4 5 6 7 8 9 10 11 12 13
e 5 6 7 8 9 10 11 12 13 14
0 1
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
Name: a, dtype: int64
0 1
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
Name: a, dtype: int64
상당히 보기힘든데...이번글만 이미지 설명으로 대체하겠다.
basic, loc, iloc을 이용하여 원하는 행렬을 뽑는 예
drop, del
drop은 값을 삭제하므로 원래 값을 삭제하려면 inplace=True로 설정하거나 원래 데이터에 넣어줘야한다.
del은 메모리 기반 삭제이므로 사용 시 바로 데이터프레임이 변경됨
map, replace, apply
map을 이용해서 Series의 모든 값에 원하는 함수 적용가능
replace는 dictionary를 기반으로 Series의 값 중 원하는 값만 변경 가능
apply는 Dataframe전체 값에 한번에 함수를 적용함
Dataframe과 Series에 적용되는 함수가 각각 다르며
Series에 적용가능한 모든 함수는 Dataframe[컬럼명]에서 반환되는 Series에 사용가능
Groupby
이전까지가 1강이고 Groupby부터 2강인데 내용이 상당히 어려워진다.
Groupby연산은 대게 categorical데이터에 적용되므로 이를 위한 컴럼 두개를 추가했다.
Groupby
df.groupby(컬럼명)으로 범주형 컬럼을 기준으로 데이터프레임을 쪼개 연산할 수 있다.
두개 이상의 범주에도 적용가능하다.
unstack, reset_index
unstack은 2개 이상의 index로 묶여진 Series를 Dataframe으로 만들어준다
reset_index는 모든 index를 없애고 Dataframe의 column으로 만들어준다
조금 신기한점은 Series뿐만 아니라 Dataframe에도 동일한 함수가 있다는 점
아마 하나 이상의 컬럼에서 값을 뽑아낼때 사용할때 편의를 위해 있는거라 생각한다.
swaplevel
Multiindex의 index의 순서를 바꿔줌
3개이상인 경우엔 매개변수를 이용해 바꿔줄 인덱스 지정 가능
이후에 groupby group간 연산, pivot_table과 crosstab을 활용하여 groupby와 유사한 기능을 사용해보는데
딥러닝 및 머신러닝 데이터 전처리를 위해 사용할 내용은 이정도면 충분할꺼라 생각한다
솔직히 너무 많은 내용을 머리에 때려박으니 더이상 읽지를 못하겠다...
Merge, Concat
merge
특정 열을 기준으로 Dataframe을 합칠 수 있다.
특정인덱스를 공유하는 df를 두개 생성했다.
merge를 통해 둘을 합칠 수 있고 how에 [inner, join, left, right]중 하나를 넣어 범위를 지정할 수 있다.
concat
같은 column을 가진 Dataframe을 하나로 묶어준다
column명이 다를시 불가능!(axis=1 설정 시에는 col이 연장되므로 가능함)
Appendix
pd,read_csv( )사용시 sep에 정규표현식 지정 가능
data_url = "/temp/url"
data = pd.read_csv(data_url, sep="\s+")
감상은 넘파이와 비슷하다. 복습할 수 있는 좋은 기회였으나
Groupby이후부터는 Dataframe을 이용해 이런기능이 가능하구나...하면서 그냥 입이 벌어진 상태로 들었다.
'Boostcamp' 카테고리의 다른 글
[부스트캠프] Semantic Segmentation 정리 (0) | 2023.04.09 |
---|---|
[부스트캠프] ResNet 정리 (0) | 2023.04.06 |
[부스트캠프]Numpy정리 (1) | 2023.03.18 |
[부스트캠프]Python 정리 (0) | 2023.03.16 |
부스트캠프 AI Tech 5기 코딩 테스트 및 합격 후기 (3) | 2023.03.14 |