일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- visualizing
- algorithm
- matplotlib
- TypeScript
- python
- data
- tensorflow
- analyzing
- Method
- 프로젝트
- opencv
- adaptive life cycle
- keras
- instance
- angular
- pandas
- Crawling
- javascript
- data analyze
- DANAWA
- Scrum
- 다나와
- webcrawling
- ECS
- 크롤링
- Project
- AWS
- Agile
- 애자일
- 자바스크립트
Archives
- Today
- Total
LiJell's 성장기
13.python_merge_concat_join 본문
반응형
Modified on Jan 06 2022
# -_- coding: utf-8 -_-
"""
Created on Mon Dec 27 13:20:27 2021
@author: hanju
"""
13. merge vs. concat
행이 서로 분리되어 있는 하나의 데이터프레임으로 합치기
컬럼이 서로 불리되어 있는 하나의 데이터vㅡ레임으로 합치기
참조 조건 사용, 연된된 두 데이터를 병합(join)
import pandas as pd import numpy as np from pandas import Series, DataFrame
DataFrame(np.arange(1,7).reshape(2,3), columns=\['A','B','C'\])
df1 = DataFrame(np.arange(1,7).reshape(2,3), columns=\['A','B','C'\])
# A B C
# 0 1 2 3
# 1 4 5 6
DataFrame(np.arange(10,61,10).reshape(2,3), columns=\['A','B','C'\])
df2 = DataFrame(np.arange(10,61,10).reshape(2,3), columns=\['A','B','C'\])
# Out\[69\]:
# A B C
# 0 10 20 30
# 1 40 50 60
concat
pd.concat([df1,df2],axis = 0)
# 행의 결합 >> 기본은 세로방향으로 합쳐짐 / 열을 기준으로
'''
A B C
0 1 2 3
1 4 5 6
0 10 20 30
1 40 50 60
'''
pd.concat([df1,df2],axis=1)
# 열의 결합 >> 가로방향으로 합쳐짐 / 행을 기준으로
'''
A B C A B C
0 1 2 3 10 20 30
1 4 5 6 40 50 60
'''
pd.concat([df1,df2], ignore_index=True)
# 순차적인 인덱스가 부여됨 0123456 이런식으로 됨
'''
A B C
0 1 2 3
1 4 5 6
2 10 20 30
3 40 50 60
'''
emp = pd.read_csv('./data/emp.csv')
emp
# empno ename deptno sal
# 0 1 smith 10 4000
# 1 2 allen 10 4500
# 2 3 ford 20 4300
# 3 4 grace 10 4200
# 4 5 scott 30 4100
# 5 6 king 20 4000
df_dept = DataFrame({'deptno':[10,20,30], 'dname':['인사부', '총무부','IT분석팀']})
df_dept
# deptno dname
# 0 10 인사부
# 1 20 총무부
# 2 30 IT분석팀
조인
- 두 데이터프레임(테이블) 참조조건 활용, 하나의 객체로 합치거나 데이터를 처리하는 행위
- merge가 두 데이터 프레임 조인을 수행, 등가 조건만을 사용하여 조인이 가능
pd.merge(left, # 첫번째 데이터프레임
right, # 두번째 데이터프레임
how='inner', # 조인 방법(default = 'inner' )
on=, # 조인하는 컬럼(컬럼명이 서로 같을 때)
left_on=, # 첫번째 데이터프레임 조인(컬럼명이 서로 다를 때)
right_on=) # 두번째 데이터프레임 조인(컬럼명이 서로 다를 때)
pd.merge(emp, df_dept, how='inner', on ='deptno')
# empno ename deptno sal dname
# 0 1 smith 10 4000 인사부
# 1 2 allen 10 4500 인사부
# 2 4 grace 10 4200 인사부
# 3 3 ford 20 4300 총무부
# 4 6 king 20 4000 총무부
# 5 5 scott 30 4100 IT분석팀
pd.merge(emp, df_dept, how='outer', on ='deptno') # 다른 key 값이 없어서?
# empno ename deptno sal dname
# 0 1 smith 10 4000 인사부
# 1 2 allen 10 4500 인사부
# 2 4 grace 10 4200 인사부
# 3 3 ford 20 4300 총무부
# 4 6 king 20 4000 총무부
# 5 5 scott 30 4100 IT분석팀
반응형
'Bigdata > 파이썬_Python' 카테고리의 다른 글
15.python_stack_unstack_pivot_table (0) | 2022.01.08 |
---|---|
14.python.drop_shift_rename (0) | 2022.01.07 |
12.python_pandas_groupby (0) | 2022.01.05 |
11.python_pandas_sort (0) | 2022.01.04 |
10.python_replace_method (0) | 2022.01.03 |
Comments