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

沿着DataFrame的轴应用一个函数。

传递给函数的对象是Series对象,其索引要么是DataFrame的索引(轴=0),要么是DataFrame的列(axis=1)。默认情况下(result_type=None),最终的返回类型是从应用函数的返回类型推断出来的。否则,它取决于result_type参数。

参数:func : function

作用于每一列或行。

axis: {0 或 ‘index’, 1 或 ‘columns’}, 默认 0

函数所应用的轴:

0 或 ‘index’: 对每一列应用函数。

1 或 ‘columns’: 对每一行应用函数。

broadcast : bool, 可选

仅与聚合函数相关:

False 或 None : 返回一个Series,该Series的长度是索引的长度或列的数量(基于axis参数)

True: 结果将广播到框架的原始形状,原始索引和列将保留。

从0.23.0版本开始就不推荐使用:这个参数将在将来的版本中被删除,取而代之的是result_type= ' broadcast '。

raw: bool, 默认 False

False : 将每一行或每一列作为一个Series传递给函数。

True : t传递的函数将接收ndarray对象。如果您只是应用一个NumPy约简函数,这将获得更好的性能。

reduce : bool或 None, 默认 None

试着使用减量程序。如果DataFrame为空,apply将使用reducto确定结果应该是一个Series还是一个DataFrame。如果reduce=None(缺省值),apply的返回值将通过在空序列上调用func来猜测(注意:在猜测时,func引发的异常将被忽略)。如果reduce=True,则始终返回一个Series,如果reduce=False,则始终返回一个DataFrame。

从0.23.0版本开始就不推荐使用:这个参数将在将来的版本中被删除,取而代之的是result_type='reduce'。

result_type : {‘expand’, ‘reduce’, ‘broadcast’, None}, 默认 None

这些只在axis=1(列)时起作用:

‘expand’ : 类似列表的结果将转换为列。

‘reduce’ : 如果可能,返回一个Series,而不是展开类似列表的结果。这是‘expand’的反义词。

‘broadcast’ : 结果将广播到DataFrame的原始形状,保留原始索引和列。

默认行为(None)取决于应用函数的返回值:类似列表的结果将作为这些结果的Series返回。但是,如果apply函数返回一个Series,这些列就会展开为列。

New in version 0.23.0.

args: tuple

除了array/series外,还要传递给func的位置参数。

**kwds

要作为关键字参数传递给func的其他关键字参数。

返回:applied: Series 或 DataFrame

Notes

在当前的实现中,apply在第一列/行上两次调用func,以决定它是采用快速代码路径还是慢代码路径。如果func有副作用,这可能会导致意想不到的行为,因为它们将对第一列/行起两次作用。

例子,>>> df = pd.DataFrame([[4, 9],] * 3, columns=['A', 'B'])

>>> df

A B

0 4 9

1 4 9

2 4 9

使用numpy通用函数(在本例中与np.sqrt(df)相同):>>> df.apply(np.sqrt)

A B

0 2.0 3.0

1 2.0 3.0

2 2.0 3.0

在任意轴上使用还原函数:>>> df.apply(np.sum, axis=0)

A 12

B 27

dtype: int64

>>> df.apply(np.sum, axis=1)

0 13

1 13

2 13

dtype: int64

重放一个类似列表的结果将是Series:>>> df.apply(lambda x: [1, 2], axis=1)

0 [1, 2]

1 [1, 2]

2 [1, 2]

dtype: object

传递result_type= ' expand '将把类似列表的结果扩展到Dataframe的列:>>> df.apply(lambda x: [1, 2], axis=1, result_type='expand')

0 1

0 1 2

1 1 2

2 1 2

在函数中返回一个Series类似于传递result_type='expand'。得到的列名将是Series索引:>>> df.apply(lambda x: pd.Series([1, 2], index=['foo', 'bar']), axis=1)

foo bar

0 1 2

1 1 2

2 1 2

传递result_type='broadcast'将确保函数返回相同的形状结果,无论是列表类型的还是标量类型的,并沿着轴进行广播。得到的列名将是原始列名>>> df.apply(lambda x: [1, 2], axis=1, result_type='broadcast')

A B

0 1 2

1 1 2

2 1 2

python apply函数的用法_Python pandas.DataFrame.apply函数方法的使用相关推荐

  1. python中mean的用法_Python pandas.DataFrame.mean函数方法的使用

    DataFrame.mean(self, axis=None, skipna=None, level=None, numeric_only=None, **kwargs)[source] 返回所请求轴 ...

  2. python中info的用法_Python pandas.DataFrame.info函数方法的使用

    DataFrame.info(self, verbose=None, buf=None, max_cols=None, memory_usage=None, null_counts=None) [so ...

  3. python中change的用法_Python pandas.DataFrame.pct_change函数方法的使用

    DataFrame.pct_change(self: ~FrameOrSeries, periods=1, fill_method='pad', limit=None, freq=None, **kw ...

  4. python中change的用法_Python Pandas dataframe.pct_change()用法及代码示例

    Python是进行数据分析的一种出色语言,主要是因为以数据为中心的python软件包具有奇妙的生态系统. Pandas是其中的一种,使导入和分析数据更加容易. Pandas dataframe.pct ...

  5. python中mean的用法_Python Pandas dataframe.mean()用法及代码示例

    Python是进行数据分析的一种出色语言,主要是因为以数据为中心的python软件包具有奇妙的生态系统. Pandas是其中的一种,使导入和分析数据更加容易. Pandas dataframe.mea ...

  6. python sum函数用法_Python pandas.DataFrame.sum函数方法的使用

    DataFrame.sum(axis=None, skipna=None, level=None, numeric_only=None, min_count=0, **kwargs)[source] ...

  7. python boxplot用法_Python pandas.DataFrame.boxplot函数方法的使用

    DataFrame.boxplot(column = None,by = None,ax = None,fontsize = None,rot = 0,grid = True,figsize = No ...

  8. python dataframe函数添加行名称_Python pandas.DataFrame.to_records函数方法的使用

    DataFrame.to_records(index=True, column_dtypes=None, index_dtypes=None) 将DataFrame转换为一个NumPy记录数组. 如果 ...

  9. python dataframe loc函数_python pandas.DataFrame.loc函数使用详解

    官方函数 DataFrame.loc Access a group of rows and columns by label(s) or a boolean array. .loc[] is prim ...

最新文章

  1. matlab 图像分割 提取人像_几种典型的图像处理技术(分类 目标提取 目标跟踪 语义分割 实例分割)...
  2. UNP Chapter 11 - 高级名字与地址转换
  3. SpringBoot阿里巴巴Fastjson的一些常用配置
  4. mysql中使用HAVING 筛选分组后的数据
  5. Educational Codeforces Round 112 (Rated for Div. 2)
  6. S3C2440时钟体系
  7. C++调用WMI类查询获取操作系统名(实例)
  8. c2java Greedy 之任务调度
  9. python构造callable_Python callable内置函数原理解析
  10. mysql 事件 函数_MySQL 自定义函数和存储过程的使用
  11. 深度剖析浏览器渲染性能原理,你到底知道多少?
  12. E - Elevator
  13. oracle里的or 短路么,Oracle CASE短路不能分组工作
  14. thinkphp5 图片压缩旋转_26套经典压缩机结构设计:有多少人知道内部结构是这样的...
  15. 3dmax如何建模(二)
  16. NetApp存储常用检查命令
  17. 王家林大数据资源共享
  18. 锚点的使用(链接到网页中某个位置)
  19. openshift介绍与应用
  20. java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal

热门文章

  1. 照片怎么拼图合成一张?这几个方法建议收藏
  2. Mybaits 中调用数据库函数的方法
  3. Python 循环结构
  4. [解读小程序]公众号热门文章信息流
  5. SQL SERVER FOR XML PATH 用法
  6. 在两个TIA博途项目中组态PROFIBUS和PROFINET通信的具体方法
  7. java月亮升起与落下动画设计_Java版1.0.0/开发版本
  8. 前端加密之使用Firefox来解密
  9. php实现教学卡片,CSS3实现卡片效果
  10. 图文详解网络基础知识