在python的dataframe中进行类似于mysql的join操作(持续更新)

原文链接: https://blog.csdn.net/chinacmt/article/details/52192449

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    
cross join    

猜你喜欢

转载自blog.csdn.net/appleyuchi/article/details/100695418
今日推荐