merge的作用:
merge函数在Python的pandas库中的作用是用来合并两个或多个DataFrame数据表,依据指定的一个或多个键(通常是列名)进行连接操作[1]。
merge函数可以有多种连接类型(如内连接inner、左连接left、右连接right、全连接outer)来组合多个DataFrame列表:
inner:
内连接(inner join):仅返回键名在两个DataFrame中都存在的行
手动生成两个DataFrame对象
import pandas as pd
left = pd.DataFrame(data=[["K0","K0","A0","B0"], ["K0", "K1","A1","B1"], ["K1", "K0","A2","B2"], ["K2", "K1","A3","B3"]], columns=["key1", "key2","A","B"])
left
right = pd.DataFrame(data=[["K5","K0","C0","D0"], ["K1", "K0","C1","D1"], ["K1", "K0","C2","D2"], ["K2", "K1","C3","D3"]], columns=["key1", "key2","C","D"])
right

内连接:
# inner
# F3
result = pd.merge(left,right,how="inner",on = ["key1", "key2"])
result
代码F3讲解:
在此示例中,left和right是待合并的DataFrame,how='inner'用来指定连接方式,on=['key1', 'key2']表示根据key1和key2这两列进行连接。连接后的结果存储在新的DataFrame result 中
outer:
全连接: 返回左右DataFrame中所有键的所有行,任何一方没有匹配键的行都会用NaN填充缺失的数据。
# outer
# F4
result = pd.merge(left,right,how="outer",on = ["key1", "key2"])
result
这个图不完整,刚才没有显示完但注释是对的。
完整的:
left:
左连接: 左连接同样基于键列,但其结果集包含了左DataFrame的所有行。对于这些行,如果它们在右DataFrame中找到匹配的键值,则会将右表对应列的值合并进来;若在右表中找不到匹配项,则相应的位置会被填充NaN或其他默认缺失值。这意味着左连接确保了左表的所有记录都会出现在结果集中。
# left
# F6
result = pd.merge(left,right,how="left",on = ["key1", "key2"])
result

right:
右连接:与左连接相反,右连接保证了右DataFrame的所有行都会出现在结果集中。每行右边数据表中的记录,如果有在左边数据表中匹配的键值,则会合并左表相应列的值;如果没有匹配项,则左边相关位置使用NaN填充。
# right
# F6
result = pd.merge(left,right,how="right",on = ["key1", "key2"])
result

我的疑惑: 还是纵向和横向的问题,
这里的 how="left" 就已经指定了进行左连接操作,即保留 left DataFrame 中的所有行,并根据 key1 和 key2 列与 right DataFrame 进行匹配合并。
axis 参数并不适用于 pd.merge() 函数,它是用于像 pd.concat() 这样的函数,用于指定是沿着行(axis=0)还是列(axis=1)进行拼接操作。在做表连接时无需指定 axis 参数。所以,上述代码去掉 axis=1 后是正确的。
[1]通义千问(2024)AI文本提问.merge的作用https://tongyi.aliyun.com/qianwen/?sessionId=f78ee60c3a39451ca41740527b74eb3e通义千问 (aliyun.com)
https://tongyi.aliyun.com/qianwen/?sessionId=f78ee60c3a39451ca41740527b74eb3e






![[R] Underline your idea with ggplot2](https://img-blog.csdnimg.cn/direct/e08f7bce859842c89e080e2c601a7fdb.png)











