배열 조인
- 두 개 이상의 배열내용을 단일 배열에 넣는 것을 의미 Numpy에서는 축을 기준으로 배열을 조인한다
stack() : 연결과 동일하고 차이점은 스태킹이 새축을 따라 수행된다는 것이다 명시적으로 전달되지 않으면 0으로 간주된다
2) hstack() : 행을 따라 쌓는 도우미
3) vstack() : 열을 따라 쌓는 도우미 기능을 제공
4) dstack() : 깊이와 동일한 높이를 따라 쌓는 도우미 기능을 제공
stack : 새로운 버티컬 축으로 수행된다
ver1 = np.array([1,2,3])
ver2 = np.array([4,5,6])
verti = np.stack((ver1, ver2), axis=1)
print(verti)
hstack() : 행을 따라 쌓기
vstack() : 함수는 주어진 배열을 수직으로 쌓아(concatenate) 하나의 배열로 만들어 준다
dstack() : 높이(깊이)를 따라 쌓기 stack과 비슷하다
concatenating
# 컬럼명이 같으면, 여러 데이터 프레임을 하나로 합칠 수 있다 2개 이상의 데이터도 가능하다
df1
A | B | C | D | |
0 | A0 | B0 | C0 | D0 |
1 | A1 | B1 | C1 | D1 |
2 | A2 | B2 | C2 | D2 |
3 | A3 | B3 | C3 | D3 |
df2
A | B | C | D | |
4 | A4 | B4 | C4 | D4 |
5 | A5 | B5 | C5 | D5 |
6 | A6 | B6 | C6 | D6 |
7 | A7 | B7 | C7 | D7 |
df3
A | B | C | D | |
8 | A8 | B8 | C8 | D8 |
9 | A9 | B9 | C9 | D9 |
10 | A10 | B10 | C10 | D10 |
11 | A11 | B11 | C11 | D11 |
pd.concat( [df1, df2, df3] ) # concatenating
A | B | C | D | |
0 | A0 | B0 | C0 | D0 |
1 | A1 | B1 | C1 | D1 |
2 | A2 | B2 | C2 | D2 |
3 | A3 | B3 | C3 | D3 |
4 | A4 | B4 | C4 | D4 |
5 | A5 | B5 | C5 | D5 |
6 | A6 | B6 | C6 | D6 |
7 | A7 | B7 | C7 | D7 |
8 | A8 | B8 | C8 | D8 |
9 | A9 | B9 | C9 | D9 |
10 | A10 | B10 | C10 | D10 |
11 | A11 | B11 | C11 | D11 |
merge
# 컬럼명이 다를 경우에 사용가능하다
# merge 함수는 2개의 데이터프레임만 가능하다
df_all
Employee ID | first name | last name | |
0 | 1 | Diana | Bouchard |
1 | 2 | Cynthia | Ali |
2 | 3 | Shep | Rob |
3 | 4 | Ryan | Mitch |
4 | 5 | Allen | Steve |
5 | 6 | Bill | Christian |
6 | 7 | Dina | Mo |
7 | 8 | Sarah | Steve |
8 | 9 | Heather | Bob |
9 | 10 | Holly | Michelle |
df_salary # Employee ID 6번이 빠져있다.
Employee ID | Salary [$/hour] | |
0 | 1 | 25.0 |
1 | 2 | 35.0 |
2 | 3 | 45.0 |
3 | 4 | 48.0 |
4 | 5 | 49.0 |
5 | 7 | 32.0 |
6 | 8 | 33.0 |
7 | 9 | 34.0 |
8 | 10 | 23.0 |
# how = 'left' 를 이용하여 데이터프레임에 없는 데이터는 nan으로 표시하게하기
# on = '중복 데이터 컬럼' 이름으로 연결 가능하다
pd.merge( df_all, df_salary, on='Employee ID' , how = 'left' )
Employee ID | first name | last name | Salary [$/hour] | |
0 | 1 | Diana | Bouchard | 25.0 |
1 | 2 | Cynthia | Ali | 35.0 |
2 | 3 | Shep | Rob | 45.0 |
3 | 4 | Ryan | Mitch | 48.0 |
4 | 5 | Allen | Steve | 49.0 |
5 | 6 | Bill | Christian | NaN |
6 | 7 | Dina | Mo | 32.0 |
7 | 8 | Sarah | Steve | 33.0 |
8 | 9 | Heather | Bob | 34.0 |
9 | 10 | Holly | Michelle | 23.0 |
배열 분할
- 결합은 여러 배열을 하나로 병합하고 분할은 하나의 배열을 여러 배열로 나눈다
- array_split()
spl = np.array([1, 2, 3, 4, 5, 6])
newspl = np.array_split(arr, 3) #분할을 3개로
print(newspl)
#2차원 배열을 3개의 2차원 배열로
three = np.array([[1,2],[3,4],[5,6],[7,8],[9,10],[11,12]])
newthree = np.array_split(three,3)
print(newthree)
'Python > Python Language' 카테고리의 다른 글
파이썬 Datetime 포맷 가이드: strftime 코드 예시와 설명 (2) | 2024.04.24 |
---|---|
SciPy(Scientific Python) Numpy를 기반으로 하는 과학 계산 라이브러리 (0) | 2024.04.16 |
데이터프레임(DataFrame)의 column, index 설정 방법 (0) | 2024.04.09 |
Pandas에서 제공하는 문자열(Str) 함수 (2) | 2024.04.09 |
Pandas(판다스) 1차원 2차원 생성과 데이터 정리 (0) | 2024.04.05 |