merge(left, right, 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)
how:指的是合并(连接)的方式有inner(内连接),left(左外连接),right(右外连接),outer(全外连接);默认为inner
on : 指的是用于连接的列索引名称。必须存在右右两个DataFrame对象中,如果没有指定且其他参数也未指定则以两个DataFrame的列名交集做为连接键
left_on:左则DataFrame中用作连接键的列名;这个参数中左右列名不相同,但代表的含义相同时非常有用。
right_on:右则DataFrame中用作 连接键的列名
left_index:使用左则DataFrame中的行索引做为连接键
right_index:使用右则DataFrame中的行索引做为连接键
sort:默认为True,将合并的数据进行排序。在大多数情况下设置为False可以提高性能
suffixes:字符串值组成的元组,用于指定当左右DataFrame存在相同列名时在列名后面附加的后缀名称,默认为(’_x’,’_y’)
copy:默认为True,总是将数据复制到数据结构中;大多数情况下设置为False可以提高性能
indicator:在 0.17.0中还增加了一个显示合并数据中来源情况;如只来自己于左边(left_only)、两者(both)
a表和b表相同列的索引名称不同,可以通过指定left_on,right_on来进行合并
left_on 左表的索引值 即:b,right_on右表索引值 即:a
indicator 显示数据来源 both 公有的
c = pd.merge(b,a,left_on='b',right_on='e',indicator=True)
c
c = pd.merge(b,a,on='b',sort=False,indicator=True)
c
c = pd.merge(b,a,left_index=True,right_index=True,sort=False,indicator=True)
c
pd.concat(
objs: Union[Iterable[ForwardRef(‘NDFrame’)], Mapping[Union[Hashable, NoneType], ForwardRef(‘NDFrame’)]],
axis=0,
join=‘outer’,
ignore_index: bool = False,
keys=None,
levels=None,
names=None,
verify_integrity: bool = False,
sort: bool = False,
copy: bool = True,
)
axis=0 行拼接 axis=1 列拼接
ignore_index = True 合并后重新索引
join = ‘inner’ 内连接取交集 (交集为含有列索引名称相同的合并) ‘outer’ 外连接取并集(如果不存在时自动填充为nan)
keys 说明数据的来源
1.以列进行左右连接
c = pd.concat([a,b],axis=1,keys=['a','b'],names=['ll','kk'])
c
c = pd.concat([a,b],join='outer')
c
a = np.array([[11, 22], [33, 44]])
a
>> array([[11, 22],
[33, 44]])
b = np.array([[55, 66]])
b
>> array([[55, 66]])
np.concatenate((a, b), axis=0)
array([[11, 22],
[33, 44],
[55, 66]])
b.T
array([[55],
[66]])
np.concatenate((a, b.T), axis=1)
array([[11, 22, 55],
[33, 44, 66]])
a[:,np.newaxis]
array([[[11, 22]],
[[33, 44]]])
a[np.newaxis,:]
array([[[11, 22],
[33, 44]]])
c = np.array([[11,22,33],[44,55,66],[77,88,99]])
c
array([[11, 22, 33],
[44, 55, 66],
[77, 88, 99]])
c = np.column_stack((c,np.arange(1,4)))
c
array([[11, 22, 33, 1],
[44, 55, 66, 2],
[77, 88, 99, 3]])
c = np.row_stack((c,np.arange(1,4)))
c
array([[11, 22, 33],
[44, 55, 66],
[77, 88, 99],
[ 1, 2, 3]])