📌
### 두개의 DataFrame 연결하기
import pandas as pd
# stockprice.xlsx, stockvaluation.xlsx 데이터를 읽기
df1 = pd.read_excel("data/stockprice.xlsx")
df2 = pd.read_excel("data/stockvaluation.xlsx")
df1
df2

# concat() : 물리적으로 두개의 DataFrame을 연결시켜주는 함수
# df1,df2를 열을 기준으로 연결하기
result1 = pd.concat([df1,df2],axis=1)
result1
result1.info()


# df1,df2를 행을 기준으로 연결하기
result2 = pd.concat([df1,df2],axis=0)
result2
result2.info()

#merge : 컬럼을 기준으로 컬럼값이 같은 값인 경우 레코드를 병합.
# sql문장의 join과 같은 의미.
result3 = pd.merge(df1,df2) # merge 컬럼 : id
result3
# id 컬럼을 merge컬럼으로 지정.
result3 = pd.merge(df1,df2,on="id") # merge 컬럼 : id
result3


# outer merge :
# how="left" : 왼쪽 데이터는 조인되는 값이 없어도 데이터를 선택.
# left outer join 과 동일한 기능
# df1은 모든데이터 조회. df2는 df1과 id 값이 같은 데이터만 조회
# df1,df2 모두 존재하는 데이터는 병합
# df1만 있는 데이터는 df2의 컬럼값은 NaN이다. 조회
result4 = pd.merge(df1,df2,on="id", how="left")
result4

# df1(왼쪽데이터), df2(오른쪽데이터) id 컬럼이 같은 경우 데이터 병합하기
# 단 df2의 모든 데이터는 조회되도록 하기
# how="right" : 오른쪽 데이터는 조인되는 값이 없어도 데이터를 선택.
# right outer join 과 동일한 기능
result5 = pd.merge(df1,df2,on="id", how="right")
result5

# how="outer" :
# full outer join 과 동일한 기능
result6 = pd.merge(df1,df2,on="id", how="outer")
result6

# 다른컬럼명으로 병합하기
'''
left_on = "stock_name" : 왼쪽데이터의 컬럼 중 stock_name 컬럼을 조인 컬럼으로 설정
right_on = "name" : 오른쪽데이터(df2)컬럼 중 name 컬럼을 조인컬럼으로 설정
'''
result7 = pd.merge(df1,df2,left_on="stock_name", right_on="name")
result7
result7.info()
result7[["stock_name","name"]] # 같은 내용이여도 이름이 다를때는 각각 조회됨.



# df1의 데이터 stock_name 컬럼과 df2 데이터의 name 컬럼을 이용하여 병합하기
# df1의 데이터는 모두 조회
result8 = pd.merge(df1,df2,left_on="stock_name",right_on="name",
how="left")
result8
result8.info()


📌
#data Base 에서 pandas데이터로 읽기
import sqlite3
conn = sqlite3.Connection("mydb")
query_result = pd.read_sql("select*from member", conn)
query_result.info()
query_result
conn.close()

import cx_Oracle as co
#오라클과 연동하기
conn = co.Connect("kic","1234","localhost/xe")
query_result = \\
pd.read_sql("select * from student", conn)
conn.close()
query_result
query_result.info()


'수업(국비지원) > Python' 카테고리의 다른 글
| [Python] 반정형 데이터 - BeautifulSoup 모듈2 (0) | 2023.04.26 |
|---|---|
| [Python] 반정형 데이터 - BeautifulSoup 모듈1 (0) | 2023.04.26 |
| [Python] filter(조건) 함수 (0) | 2023.04.25 |
| [Python] agg(함수이름) 함수 (0) | 2023.04.25 |
| [Python] groupby : 컬럼으로 데이터 분리 (0) | 2023.04.25 |