EXCEL中Vlookup函数实现数据横向合并,SAS中也是用merge实现横向合并,SQL中则是内连接inner join 左连接和右连接,意义都是等同的。
如下为python中的根据关键词合并代码:
import pandas as pd
#路径中文则加r,econding指定读取带文本的文件
data1 = pd.read_excel('1.xlsx',encoding = 'utf-8')
#指定sheet名读取,添加参数sheet_name = 'AAA'
data2 = pd.read_excel('2.xlsx',encoding = 'utf-8')
all_data = pd.merge(data1,data2,left_on='客户ID',right_on='CRM客户号',how='left')
# merge中也可添加on = ['key1','key2']可多列关键词
#print(all_data)
all_data.to_excel('3.xlsx')
是不是很简单,so easy,只用到了个merge函数,
merge(left_dataname, right_dataname,
how='inner',
on=None,
left_on=None,
right_on=None,
left_index=False, right_index=False,
sort=True,
suffixes=('_x', '_y'),
copy=True, indicator=False)
left_dataname,right_dataname | 待连接的两个不同的DataFrame名称 |
---|---|
how | 取值可以为[‘left’, ‘right’, ‘outer’, ‘inner’];默认为inner |
on | 用于连接的列索引名称。做为连接键,经常是id,编号等能唯一确定数据的主键,当然也可以多个 |
left_on | 左侧DataFrame中用作连接键的列名 |
right_on | 左侧DataFrame中用作连接键的列名 |
left_index | 使用左则DataFrame中的行索引做为连接键,这个一般情况用不到 |
right_index | 同上,这个一般也用不到 |
sort | 默认为True,将合并的数据进行排序,这个可以加上 |
suffixes | 用于指定当左右DataFrame存在相同列名时在列名后面附加的后缀名称,默认为(’_x’,’_y’),这个也用不到 |
copy | 默认为True,也用不到 |
indicator | 可以忽略,谁知道是啥,我没用过 |