Pandas concat과 merge - 데이터 연결과 병합
Pandas concat과 merge - 데이터 연결과 병합
Pandas concat과 merge - 데이터 연결과 병합
concat() - 데이터 연결
- concat()은 DataFrame을 연결함.
행 방향으로 연결
- 기본 값인 axis = 0이 지정되어 있고, 행 방향으로 연결함. 또한, 같은 column을 알아서 찾아서 데이터를 연결
pd.concat([gas1, gas2])
- 연결시 index가 초기화가 되지 않아 전체 DataFrame의 개수와 index가 맞지 않음
gas = pd.concat([gas1, gas2], ignore_index=True)
- index를 무시하고 연결
열 방향으로 연결
- 열 방향으로 연결 가능하며, axis = 1로 지정
pd.concat([gas1, gas2], axis=1
merge() - 병합
- 서로 다른 구성의 DataFrame이지만, 공통된 key값(컬럼)을 가지고 있다면 병합할 수 있음 ```python df1 = pd.DataFrame({ ‘고객명’: [‘박세리’, ‘이대호’, ‘손흥민’, ‘김연아’, ‘마이클조던’], ‘생년월일’: [‘1980-01-02’, ‘1982-02-22’, ‘1993-06-12’, ‘1988-10-16’, ‘1970-03-03’], ‘성별’: [‘여자’, ‘남자’, ‘남자’, ‘여자’, ‘남자’]})
df2 = pd.DataFrame({ ‘고객명’: [‘김연아’, ‘박세리’, ‘손흥민’, ‘이대호’, ‘타이거우즈’], ‘연봉’: [‘2000원’, ‘3000원’, ‘1500원’, ‘2500원’, ‘3500원’]})
pd.merge(df1, df2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
### 병합하는 방법 4가지
- how 옵션 값을 지정하여 4가지 방식으로 병합을 할 수 있음
- how : {left, right, outer, inner}
- default로 설정된 값은 inner
`pd.merge(df1, df2, how='left')`
### 병합하려는 컬럼의 이름이 다른 경우
```python
df1 = pd.DataFrame({
'이름': ['박세리', '이대호', '손흥민', '김연아', '마이클조던'],
'생년월일': ['1980-01-02', '1982-02-22', '1993-06-12', '1988-10-16', '1970-03-03'],
'성별': ['여자', '남자', '남자', '여자', '남자']})
df2 = pd.DataFrame({
'고객명': ['김연아', '박세리', '손흥민', '이대호', '타이거우즈'],
'연봉': ['2000원', '3000원', '1500원', '2500원', '3500원']})
pd.merge(df1, df2, left_on='이름', right_on='고객명')
- 이름과 고객명 컬럼이 모두 drop되지 않고 살아 있음을 확인할 수 있음.
This post is licensed under CC BY 4.0 by the author.