# -*- coding: utf-8 -*-
#概念:字段匹配,根据各表共有的关键字段,把各表所需的记录一一对应起来
#应用场景:假如现在手上有两个表,第一个表存的是商品的基本信息,第二个表存的是商品的销售信息,两个表都有一个商品id字段,id相同就表示是同一个商品,那么,我们可以利用这个字段,将两个表进行合并
#字段匹配函数:merge(x,y,left_on,right_on)
#x:第一个数据框
#y:第二个数据框
#left_on:第一个数据框用于匹配的列(两个表共有的关键字段)
#right_on:第二个数据框用于匹配的列(两个表共有的关键字段)
#为了确保匹配结果的正确性,建议用于匹配的字段的类型要保持一致,比如要么都是数值型,要么都是字符型
#返回值:DataFrame
import pandas
items = pandas.read_csv("D:/python/workspace/pythonStudy/17_1.csv",sep="|",names=["id","comments","title"])
prices = pandas.read_csv("D:/python/workspace/pythonStudy/17_2.csv",sep="|",names=["id","oldPrice","nowPrice"])
#1. 默认只是保留连接上(匹配成功的)的部分:
itemPrices= pandas.merge(items,prices,left_on="id",right_on="id")
#2. 左连接:即使连接不上,也保留左边没连接上的部分.(右边的将会使用空值填充)
itemPrices = pandas.merge(items,prices,left_on="id",right_on="id",how="left")
#3. 右连接:即使连接不上,也保留右边没连接上的部分
itemPrices = pandas.merge(items,prices,left_on="id",right_on="id",how="right")
#4. 外连接:即使连接不上,也保留所有没连上的部分
itemPrices = pandas.merge(items,prices,left_on="id",right_on="id",how="outer")
|
|