我在从MySQL派生的数据上使用了pandas数据帧的内部合并方法。我希望计数与内连接SQL查询匹配。合并方法的工作方式与内连接SQL查询完全相同吗?
farmer_ucd=pd.read_sql('select * from usercredential_dtl ', con=farmer_engine)
farmer_upe=pd.read_sql('select * from userprofile_dtl ', con=farmer_engine)
farmer_upe.merge(farmer_ucd, how='inner', on=['user_id'])
99979 rows × 51 columns
SQL查询的计数高于pandas的合并方法。
select count(*) from usercredential_dtl as ucd inner join userprofile_dtl as upe
on ucd.User_Id = upe.User_Id
count(*)
109254
答案 0 :(得分:1)
这是因为pandas也比较了列案例,而mysql将执行不区分大小写的搜索。
farmer_upe['user_id']=farmer_upe['user_id'].str.lower()
当我将公共列更改为小写时,它与mysql查询计数匹配。