在python的dataframe中进行类似于mysql的join操作(持续更新)
生活随笔
收集整理的這篇文章主要介紹了
在python的dataframe中进行类似于mysql的join操作(持续更新)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Mysql準備工作:
T1
T2
T3
?
| 操作 | mysql | mysql結果 |
| inner join | select * from T1 inner join T2 on T1.user_id = T2.user_id | |
| left outer join | select * from T1 left outer join T2 on T1.user_id=T2.user_id | |
| right outer join | select * from T1 right outer join T2 on T1.user_id=T2.user_id | |
| full outer join | select * from T1 left join T2 on T1.user_id = T2.user_id union select * from? right join T2 on T1.user_id = T2.user_id ; | |
| cross join | select * from T1 cross join T2 |
?
result= ? ?user_id user_name password ?score ?level
0 ? ? ? ?1 ? ? ?Jack ?Jackpwd ? ? 20 ? ? ?3
1 ? ? ? ?3 ? ? ? NaN ? ? ?NaN ? ? 50 ? ? ?6
?
######################################################################################
Python準備工作:
import pandas as pd T1= {'user_id': [1, 2],'user_name': ['Jack','owen'],'password': ['Jackpwd','owenpwd']}T2= {'user_id': [1, 3],'score': [20,50],'level': [3,6]}T1=pd.DataFrame(T1) print(T1) T2=pd.DataFrame(T2) print(T2)?
| mysql操作 | python代碼 | python代碼運行結果 |
| inner join | result=pd.merge(left=T1, right=T2, how='inner', left_on='user_id', right_on='user_id') | user_id user_name password ?score ?level ?1? ? ? ? ? ? ? ? ? ?Jack? ? ? ? ? ?Jackpwd ? ? 20 ? ? ?3 |
| lefter outer join | result=pd.merge(left=T1, right=T2, how='left', left_on='user_id', right_on='user_id') | ?user_id user_name password ?score ?level ?1? ? ? ? ? ? ? ? ? Jack? ? ? ? ? ? Jackpwd ? 20.0 ? ?3.0 ?2? ? ? ? ? ? ? ? ? owen? ? ? ? ? owenpwd NaN ? ?NaN |
| right outer join | result=pd.merge(left=T1, right=T2, how='right', left_on='user_id', right_on='user_id') | user_id user_name password ?score ?level 1? ? ? ? ? ? ? ? ? Jack? ? ? ? ? ? Jackpwd ? ? 20 ? ? ?3 3? ? ? ? ? ? ? ? ? ? NaN? ? ? ? ? ? ? ?NaN? ? ? ? ? ?50 ? ? ?6 |
| full outer join | result=pd.merge(T1, T2, on='user_id', how='outer') | result= ? ?user_id user_name password ?score ?level 0 ? ? ? ?1 ? ? ?Jack ?Jackpwd ? 20.0 ? ?3.0 1 ? ? ? ?2 ? ? ?owen ?owenpwd ? ?NaN ? ?NaN 2 ? ? ? ?3 ? ? ? NaN ? ? ?NaN ? 50.0 ? ?6.0 ? |
| cross join | ? | ? |
?
Reference:
[1]JOIN IN PANDAS: MERGE DATA FRAMES (INNER, OUTER, RIGHT, LEFT JOIN) IN PANDAS PYTHON
總結
以上是生活随笔為你收集整理的在python的dataframe中进行类似于mysql的join操作(持续更新)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: join操作-内联,左外联,右外联,交叉
- 下一篇: DataFrame挑选其中两列,带列名