[SQL] 일반적인 열 두 dataframes 가입
SQL일반적인 열 두 dataframes 가입
나는 두 개의 데이터 소스, 주문 및 고객을 가입하려는 :
주문은 SQL Server 테이블입니다 :
orderid| customerid | orderdate | ordercost
------ | -----------| --------- | --------
12000 | 1500 |2008-08-09 | 38610
고객은 csv 파일은 다음과 같습니다
customerid,first_name,last_name,starting_date,ending_date,country
1500,Sian,Read,2008-01-07,2010-01-07,Greenland
나는 다음과 같은 코드를 작성, 그래서 난 내 파이썬 응용 프로그램에서이 두 테이블을 조인 할 :
# Connect to SQL Sever with Pyodbc library
connection = pypyodbc.connect("connection string here")
cursor=connection.cursor();
cursor.execute("SELECT * from order)
result= cursor.fetchall()
# convert the result to pandas Dataframe
df1 = pd.DataFrame(result, columns= ['orderid','customerid','orderdate','ordercost'])
# Read CSV File
df2=pd.read_csv(customer_csv)
# Merge two dataframes
merged= pd.merge( df1, df2, on= 'customerid', how='inner')
print(merged[['first_name', 'country']])
나는 기대
first_name | country
-----------|--------
Sian | Greenland
하지만 빈 결과를 얻을.
내가 CSV 파일에서 모두 두 개의 데이터 프레임이 코드를 수행 할 때, 그것을 잘 작동합니다. 어떤 도움?
감사.
해결법
-
==============================
1.나는 문제는 CustomerID를 열 것입니다 전혀 일치하므로 두 DataFrames 다른 dtypes을 가지고 생각합니다.
나는 문제는 CustomerID를 열 것입니다 전혀 일치하므로 두 DataFrames 다른 dtypes을 가지고 생각합니다.
그래서 STR에 INT 또는 둘 모두에 열을 변환 할 필요가있다.
df1['customerid'] = df1['customerid'].astype(int) df2['customerid'] = df2['customerid'].astype(int)
또는:
df1['customerid'] = df1['customerid'].astype(str) df2['customerid'] = df2['customerid'].astype(str)
또한 가능한 생략은 어떻게 = '내부'때문에 병합의 기본 값 :
merged= pd.merge( df1, df2, on= 'customerid')
-
==============================
2.당신이 두 프레임에서 일치하는 값이없는 pd.merge 수단에 대한 dataframe 결과를 비 웁니다. 당신은 데이터의 유형을 확인 했습니까? 사용하다
당신이 두 프레임에서 일치하는 값이없는 pd.merge 수단에 대한 dataframe 결과를 비 웁니다. 당신은 데이터의 유형을 확인 했습니까? 사용하다
df1['customerid'].dtype
확인하다.
뿐만 아니라 (다른 대답 제안), 당신은 또한 당신이 CSV를 읽을 때 당신이 원하는 D- 타입 무엇 팬더을 알 수 있습니다 가져온 후 변환 등
df2=pd.read_csv(customer_csv, dtype={'customerid': str))
from https://stackoverflow.com/questions/42947303/join-two-dataframes-on-common-column by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 예외 : SQLException 이름 잘못된 열 ...? (0) | 2020.07.18 |
---|---|
[SQL] 사이베이스는 : 설정하는 것이 가능하다 @@ 오류 (0) | 2020.07.18 |
[SQL] SQL에서 HAVING 및 WHERE의 차이점은 무엇입니까? (0) | 2020.07.18 |
[SQL] 어떻게 오라클의 테이블에 별칭을 줄 수 있습니까? (0) | 2020.07.18 |
[SQL] AddWithValue DBTYPE 쿼리가 느리게 실행하는 원인없이 (0) | 2020.07.18 |