前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Pandas-7. 自定义/第三方库函数应用

Pandas-7. 自定义/第三方库函数应用

作者头像
悠扬前奏
发布2019-05-28 14:44:26
6750
发布2019-05-28 14:44:26
举报

将自定义或者其他第三方函数应用于Pandas对象,有三个方法:

  • 表格函数应用:pipe()
  • 行或列函数应用:apply()
  • 元素函数应用:applymap()

以如下DataFrame作为例子:

代码语言:javascript
复制
  col1  col2    col3
0   -0.484512   1.185299    -0.994175
1   0.953891    0.040472    0.336415
2   -0.264222   0.395222    0.620222
3   1.068480    0.747379    0.781686
4   1.337689    0.068951    0.258189

1. 表格函数应用

通过将函数和适量参数作为pipe()的参数来执行自定义操作,对整个DataFrame有效。 例如,一下代码将DataFrame所有元素加2:

代码语言:javascript
复制
def adder(ele1, ele2):
    return ele1 + ele2

df.pipe(adder, 2)

结果:

代码语言:javascript
复制
col1    col2    col3
0   1.515488    3.185299    1.005825
1   2.953891    2.040472    2.336415
2   1.735778    2.395222    2.620222
3   3.068480    2.747379    2.781686
4   3.337689    2.068951    2.258189

2. 行或列应用函数

用apply()方法沿DataFrame或Panel的轴应用函数。可选的axis参数作为行或列的标志。默认按列执行,每列列为数组。 以下代码求每列的均值(默认):

代码语言:javascript
复制
df.apply(np.mean)

结果:

代码语言:javascript
复制
col1    0.522265
col2    0.487465
col3    0.200468
dtype: float64

通过axis参数,求每行的均值:

代码语言:javascript
复制
df.apply(np.mean,axis=1)

结果:

代码语言:javascript
复制
0   -0.097796
1    0.443593
2    0.250407
3    0.865849
4    0.554943
dtype: float64

可以用lambda表达式 以下代码求最大值和最小值的差:

代码语言:javascript
复制
df.apply(lambda x: x.max() - x.min())

结果:

代码语言:javascript
复制
col1    1.822201
col2    1.144827
col3    1.775861
dtype: float64

3. 元素应用函数

Dataframe上的applymap()方法类似在Series上的map()方法,接受python函数,返回单个值。 map()将第一列扩大一百倍:

代码语言:javascript
复制
df["col1"].map(lambda x:x*100)

结果:

代码语言:javascript
复制
0    -48.451157
1     95.389111
2    -26.422239
3    106.848018
4    133.768933
Name: col1, dtype: float64

将DataFrame中的元素全部扩大一百倍:

代码语言:javascript
复制
df.applymap(lambda x: x* 100)

结果:

代码语言:javascript
复制
    col1    col2    col3
0   -48.451157  118.529903  -99.417538
1   95.389111   4.047239    33.641550
2   -26.422239  39.522219   62.022228
3   106.848018  74.737950   78.168611
4   133.768933  6.895073    25.818906
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.03.29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 表格函数应用
  • 2. 行或列应用函数
  • 3. 元素应用函数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档