1. pd.concat
- pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False,
keys=None, levels=None, names=None, verify_integrity=False, sort=None, copy=True)
obj : 参与合并的对象,如:[df1, df2]
axis : 合并方向
join : 合并方式,outer 为外链接,取交集
join_axes : 设置需要显示的列名
ignore_index: 是否忽略原来DataFrame/Series 对象的索引,重新排列
keys: 为数据源设置多级索引标签
levels :如果设置keys的话, 指定用作层次化索引各级别(内层索引)上的索引
names:用于创建分层级别的名称,如果设置keys或levels的话
verify_integrity: 检查是否出现重复索引,引发异常
2.pd.merge
数据连接的方式
- 一对一连接
df1, df2的共同列(参与合并的键)无重复
- 一对一连接
- 多对一连接
df1, df2的共同列在df1中有重复,在df2中无重复
- 多对一连接
- 多对多连接
df1, df2的共同列在两者中都有重复
- 多对多连接
- pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False, suffixes=('_x', '_y'), copy=True, indicator=False, validate=None)
left:参与合并的左侧DataFrame
right:参与合并的右侧DataFrame
how:连接方式:‘inner’(默认,交集);还有,‘outer’、‘left’、‘right’
on:用于连接的列名,必须同时存在于左右两个DataFrame对象中,如果位指定,则以left和right列名的交集作为连接键
left_on:左侧DataFarme中用作连接键的列
right_on:右侧DataFarme中用作连接键的列
left_index:将左侧的行索引用作其连接键
right_index: 将右侧的行索引用作其连接键
sort:根据连接键对合并后的数据进行排序,默认为True。有时在处理大数据集时,禁用该选项可获得更好的性能
suffixes:字符串值元组,用于追加到重叠列名的末尾,默认为(‘_x’,‘_y’).例如,左右两个DataFrame对象都有‘data’,则结果中就会出现‘data_x’,‘data_y’
copy:设置为False,可以在某些特殊情况下避免将数据复制到结果数据结构中。默认总是赋值
3. pd.groupby
- groupby(*args, **kwargs)
用法入门比较简单, 前人的博客写的蛮详尽了
Pandas详解十五之利用GroupBy技术进行分组
补充几点:
1. 可以使用字典或Series将索引映射到分组名称
2.也可以将任意python函数传入groupby,函数映射到索引
3.任意之前有效的键都可以组合起来分组,从而返回一个多级索引的分组结果
4. pd.pivot_table
- DataFrame.pivot_table(data, values=None, index=None, columns=None,
aggfunc='mean', fill_value=None, margins=False, dropna=True, margins_name='All')
data: 用于制作数据透视表的 DataFrame的某列数据,输入列名即可
index: 行分组标签
columns: 列分组标签
aggfunc: 汇总计算方法,默认为(mean) 可以用字典为不同的列指定不同的累计函数,此时data可以缺失
fill_value:填充缺失值
dropna: 剔除缺失值
margins: 是否对边际进行aggfunc汇总
margins_name: 边际行/列的名称