1.合并数据 concat、join、append、merge方法
1.1 concat
pd.concat()通常用来连接DataFrame对象。默认情况下,axis=0,是对两个DataFrame对象进行纵向连接(行+行),axis=1 按列合并
举例:
1.2 join 直接通过索引链接,横向合并列
1.3 append
向dataframe对象中添加新的行,如果添加的列名不在dataframe对象中,将会被当作新的列进行添加
other:待合并的数据。可以是pandas中的DataFrame、series,或者是Python中的字典、列表这样的数据结构
ignore_index:是否忽略原来的索引,生成新的自然数索引
verify_integrity:默认是False,如果值为True,创建相同的index则会抛出异常的错误
sort:boolean,默认是None。如果self和other的列没有对齐,则对列进行排序
举例:
1.4 merge
merge合并,类似excel的vlookup
pd.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)
on:参考键
参数how : 合并方式,inner:默认,取交集;outer:取并集,数据缺失范围NaN;left;right
参数 left_on, right_on, left_index, right_index → 当键不为一个列时,可以单独设置左键与右键
sort:按照字典顺序通过 连接键 对结果DataFrame进行排序。默认为False,设置为False会大幅提高性能
举例:
【总结】merge、join只能横向合并列,concat : 默认axis=0 按行连接;axis=1 按列合并,append 追加行
2.将数据的列“旋转”为行
任务一:将我们的数据变为Series类型的数据
stack函数:pandas.DataFrame.stack(self, level=-1, dropna=True)
3.数据聚合与运算
3.1GroupBy机制:拆分-应用-合并
分组统计 - groupby功能
① 根据某些条件将数据拆分成组
② 对每个组独立应用函数
③ 将结果合并到一个数据结构中
例如:DataFrame可以在其行(axis=0)或列(axis=1)上进行分组。然后,将一个函数应用(apply)到各个分组并产生一个新值。最后,所有这些函数的执行结果会被合并(combine)到最终的结果对象中
举例:
3.2 agg函数
groupby返回的是一个DataFrameGroupBy结构,这个结构必须调用聚合函数(如sum)之后,才会得到结构为Series的数据结果,每次用groupby函数后,都是要接类似sum、mean等聚合函数才能输出。agg是DataFrame的直接方法,返回的也是一个DataFrame,可以同时使用多个方法
3.3 groupby 两列的话需要用list[]
3.4. values:对应的二维NumPy值数组。 . columns:列索引:列名称。 . index:行的索引:行号或行名。