how选项值的不同连接类型的总结
import pandas as pd df3=pd.DataFrame({'key':['b','b','a','c','a','b'],'data1':range(6)}) df4=pd.DataFrame({'key':['a','b','a','b'],'data2':range(4)}) print("------------------------分隔符4-----------------------------") print(df3) print("------------------------分隔符5-----------------------------") print(df4)
df3输出结果如下:
df4输出结果如下:
使用pd.merge()对df3,df4进行合并,参数设置为how="inner",表示使用两个表的都有的键,分别为a,b代码如下:
df4_join=pd.merge(df3, df4, on='key', how='inner') print(df4_join)
输出结果为:
书上内容:多对多连接产⽣的是⾏的笛卡尔积。由于左边的DataFrame有3 个"b"⾏,右边的有2个,所以最终结果中就有6个"b"⾏。
使用pd.merge()对df3,df4进行合并,参数设置为how="left",表示使用左表中所有的键,分别为a,b,c代码如下:
df5_join=pd.merge(df3, df4, on='key', how='left') print(df5_join)
输出结果为:
使用pd.merge()对df3,df4进行合并,参数设置为how="right",表示使用右表中所有的键,分别为a,b代码如下:
df6_join=pd.merge(df3, df4, on='key', how='right') print(df6_join)
输出结果为:
使用pd.merge()对df3,df4进行合并,参数设置为how="outer",表示使用两个表中所有的键,分别为a,b,c代码如下:
df7_join=pd.merge(df3, df4, on='key', how='outer') print(df7_join)
输出结果如下: