pandas 学习 第10篇:DataFrame 数据处理(应用、分组聚合、窗口、组合、连接、合并)

DataFrame的这些操作和Series很相似,这里简单介绍一下。

一,应用

apply()函数应用于轴级别,applymap应用于元素级别:

DataFrame.apply(self, func, axis=0, raw=False, result_type=None, args=(), **kwds)
DataFrame.applymap(self, func)

定义一个函数fun,使用apply()函数把fun应用到由DataFrame对象的列构成的一维数组上,通常fun函数是由聚合函数构成的。

f=lambda x: x.max()-x.min
df.apply(f)

定义一个函数foo,使用applymap()函数把函数foo应用于DataFrame对象的各个元素上,

foo=lambda x: '%.2f' % x

df.applymap(foo)

转换数据,调用函数对循环对数据元素进行处理:

DataFrame.transform(self, func, axis=0, *args, **kwargs)

二,分组和聚合

 groupby用于对数据分组,分组之后可以直接调用聚合函数求值;agg()函数把分组和调用聚合函数集成到一个函数来实现:

DataFrame.groupby(self, by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, observed=False, **kwargs)
DataFrame.agg(self, func, axis=0, *args, **kwargs)

三,窗口

rolling()是指按照窗口滚动求值,expanding()是指依次递增1,计算累加;ewm指的是指数加权滚动平均:

DataFrame.rolling(self, window, min_periods=None, center=False, win_type=None, on=None, axis=0, closed=None)
DataFrame.expanding(self, min_periods=1, center=False, axis=0)
DataFrame.ewm(self, com=None, span=None, halflife=None, alpha=None, min_periods=0, adjust=True, ignore_na=False, axis=0)

四,追加数据行

向数据框的末尾追加数据行

DataFrame.append(self, other, ignore_index=False, verify_integrity=False, sort=None)

五,自然连接

两个数据框按照on条件进行连接,或按照索引,或按照同名的字段进行连接,按照等值条件进行匹配:

DataFrame.join(self, other, on=None, how='left', lsuffix='', rsuffix='', sort=False)

参数注释:

  • on:如果设置为None,那么按照行索引来匹配;如果设置为列值,那么两个DataFrame中按照on指定的列进行匹配
  • how:连接的类型,{‘left’, ‘right’, ‘outer’, ‘inner’}, default ‘left’
  • lsuffix:左表同名字段的前缀
  • rsuffix:右表同名字段的前缀

六,合并

类似于关系型数据库的连接操作,和join函数的功能相同,按照等值条件进行匹配,但是用法比join函数更灵活:

DataFrame.merge(self, 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)

参数注释:

  • right:右表
  • how:{‘left’, ‘right’, ‘outer’, ‘inner’}, default ‘inner’
  • on:连接的条件,要求按照同名字段进行匹配
  • left_on、right_on:分别指定左表和右表的来连接字段,字段的顺序是有意义的
  • left_index、right_index:分别指定左表和右表的索引,按照索引来匹配
  • suffixes:元组(str,str),分别用于指定左表和右表同名字段的前缀
  • indicator:增加指示器,如果设置为True,增加一列”_merge“
  • validate:检查merge的类型(“one_to_one” or “1:1”,“one_to_many” or “1:m”,“many_to_one” or “m:1”和“many_to_many” or “m:m”)

参考文档:

pandas DataFrame

猜你喜欢

转载自www.cnblogs.com/ljhdo/p/11592735.html
今日推荐