Data Manipulation
첫번째 row가 columns인 경우
new_header = df.iloc[0] # grab the first row for the header
df = df[1:] # take the data less the header row
df.columns = new_header # set the header row as the df header
pd.merge() : DataFrame 결합
Ex) pd.merge(df1,df2, how = '(방법)', on = 'year')
- how = 'left' : 왼쪽에 있는 df1의 'year'을 기준으로 합치기
- how = 'right' : 오른쪽에 있는 df2의 'year'을 기준으로 합치기
- how = 'inner' : 중복된 데이터의 행만 합치기
- how = 'outer' : 기준 columns 'year'을 기준으로 중복 여부 상관 없이 합치기
pd.melt() : wide --> tidy, 데이터 재구조
pd.melt(id_vars = 'index', value_vars = '기준 columns', var_name = , value_name = )
df.at[] / df.iat[] : 패스트 인덱싱
- df['row label','columns label']
1차원 배열 DataFrame 슬라이스
- x[start:stop:step]
import pandas as pd
x = pd.DataFrame([1,2,3,4,5,6,7,8,9,10])
0
0 1
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
print(x[:5]) # 처음부터 인덱스 4까지 (=처음부터 5개 요소)
0
0 1
1 2
2 3
3 4
4 5
print(x[5:]) # 인덱스 5부터 끝까지
0
5 6
6 7
7 8
8 9
9 10
print(x[4:7])# 인덱스 4부터 6까지
print(x[::2]) # 처음부터 요소를 하나씩 건너 뛴 배열 구성(= step인 2 배열 출력)
0
0 1
2 3
4 5
6 7
8 9
print(x[1::2])# 1부터 시작해서 step이 2인 배열
0
1 2
3 4
5 6
7 8
9 10
# step이 음수일 떄는 start와 stop의 기본값이 서로 바뀐다.
print(x[::-1]) # 모든 요소를 거꾸로 나열
0
9 10
8 9
7 8
6 7
5 6
4 5
3 4
2 3
1 2
0 1
print(x[9::-2]) # 인덱스 9부터 step 을 -2로 처음까지 나열
0
9 10
7 8
5 6
3 4
1 2
2차원 배열 DataFrame 슬라이스
- x.loc[::,::] 앞에는 행(row), 뒤에는 열(column)을 대상으로 슬라이스를 수행
- x.iloc[::,::] 앞에는 행(row), 뒤에는 열(column)을 대상으로 슬라이스를 수행
import pandas as pd
x = pd.DataFrame([[3, 5, 2, 4], [7, 6, 8, 8], [1, 6, 7, 7]], columns=['A','B','C','D'])
x
A B C D
0 3 5 2 4
1 7 6 8 8
2 1 6 7 7
print(x.iloc[:2,:2]) # 두 개의 행, 두 개의 열
A B
0 3 5
1 7 6
print(x.iloc[:2,::2]) # 두 개의 행, ['A', 'C'] 열만 출력
A C
0 3 2
1 7 8
print(x.iloc[:2,1:4]) # 두 개의 행, 1~4 번째 열
B C D
0 5 2 4
1 6 8 8
# labeling 기반이라 :1은 1까지 포함한다.
print(x.loc[:1,:'B']) # 두 개의 행, 두 개의 열
A B
0 3 5
1 7 6
print(x.loc[:1,['A','B','C']]) # 두 개의 행, ['A','B' ,'C'] 열만 출력
A B C
0 3 5 2
1 7 6 8
2차원 배열 DataFrame 열조회
- 하나의 열 조회
x['열이름']
x.loc[:,'열이름']
- 두개 이상의 열 조회
x['열 배열']
x.loc[:,'열 배열']
import pandas as pd
x = pd.DataFrame([[3, 5, 2, 4], [7, 6, 8, 8], [1, 6, 7, 7]], columns=['A','B','C','D'])
x
A B C D
0 3 5 2 4
1 7 6 8 8
2 1 6 7 7
# A 열 조회
print(x['A'])
print(x.loc[:,'A'])
0 3
1 7
2 1
# B, D 열 조회
print(x[['B','D']])
print(x.loc[:,['B','D']])
B D
0 5 4
1 6 8
2 6 7
Top 25 Pandas Tricks
github.com/Hyun-Jun-Lee/pandas-videos/blob/master/top_25_pandas_tricks.ipynb
Top 25 Pandas Tricks , 이 내용들 익숙하게 만들면 앞으로 구글링 빈도가 매우 줄듯하다!
인덱싱, 슬라이싱은 몇번을 배워도 헷갈렸는데, 이번 기회에 확실하게 잡기!
'[CodesSates] AI 부트캠프' 카테고리의 다른 글
Hypothesis Test (0) | 2021.03.14 |
---|---|
Hypothesis Test (0) | 2021.03.14 |
Data Visualize (0) | 2021.03.09 |
Feature Engineering (0) | 2021.03.05 |
EDA (0) | 2021.03.04 |