pandas目录

简介

  如果想要应用自定义的函数,或者把其他库中的函数应用到 Pandas 对象中,有以下三种方法:

  • 操作整个 DataFrame 的函数:pipe()
  • 操作行或者列的函数:apply()
  • 操作单一元素的函数:applymap()

  下面介绍了三种方法的使用。

1 操作整个数据表

  通过给 pipe() 函数传递一个自定义函数和适当数量的参数值,从而操作 DataFrme 中的所有元素。

  下面示例,实现了数据表中的元素值依次加 3。

df = pd.DataFrame(np.arange(6).reshape(2,3),columns=['col1','col2','col3'])
#相加前
print(df)
#相加后
print(df.pipe(add,3))

  输出结果:

   col1  col2  col3
0 0 1 2
1 3 4 5
col1 col2 col3
0 3 4 5
1 6 7 8

2 操作行或列

  如果要操作  DataFrame 的某一行或者某一列,可以使用 apply() 方法,该方法与描述性统计方法类似,都有可选参数 axis,并且默认按列操作。示例如下:

df2 =pd.DataFrame(data=np.arange(6,12).reshape((-1,3)),columns=['col1','col2','col3'],index=[2,3])
df = df.append(df2)
df

  输出结果:

col1	col2	col3
0 0 1 2
1 3 4 5
2 6 7 8
3 9 10 11

  继续:

df.apply(np.mean)

  输出结果:

col1    4.5
col2 5.5
col3 6.5
dtype: float64

  示例:

df.apply(np.mean,axis =1)

  输出结果:

0     1.0
1 4.0
2 7.0
3 10.0
dtype: float64

  求每一列中,最大值与最小值之差。示例如下:

print(df.apply(lambda x: x.max() - x.min()))

  输出结果:

col1    9
col2 9
col3 9
dtype: int64

3 操作单一元素

  DataFrame 数据表结构的 applymap() 和 Series 系列结构的 map() 类似,它们都可以接受一个 Python 函数,并返回相应的值。
  示例如下:

df = pd.DataFrame(np.arange(6).reshape((-1,3)),columns=['col1','col2','col3'])
print(df)
#自定义函数lambda函数
print(df['col1'].map(lambda x:x*2))

  输出结果:

   col1  col2  col3
0 0 1 2
1 3 4 5
0 0
1 6
Name: col1, dtype: int64

  下面示例使用了 applymap() 函数,如下所示:

#自定义函数
df = pd.DataFrame(np.arange(6).reshape((-1,3)),columns=['col1','col2','col3'])
print(df.applymap(lambda x:x*2))
print(df.apply(np.mean))

  输出结果:

   col1  col2  col3
0 0 2 4
1 6 8 10
col1 1.5
col2 2.5
col3 3.5
dtype: float64

Lesson7——Pandas 使用自定义函数的更多相关文章

  1. pandas DataFrame apply()函数(1)

    之前已经写过pandas DataFrame applymap()函数 还有pandas数组(pandas Series)-(5)apply方法自定义函数 pandas DataFrame 的 app ...

  2. Mysql - 存储过程/自定义函数

    在数据库操作中, 尤其是碰到一些复杂一些的系统, 不可避免的, 会用到函数/自定义函数, 或者存储过程. 实际项目中, 自定义函数和存储过程是越少越好, 因为这个东西多了, 也是一个非常难以维护的地方 ...

  3. Entity Framework 6 Recipes 2nd Edition(10-5)译 -> 在存储模型中使用自定义函数

    10-5. 在存储模型中使用自定义函数 问题 想在模型中使用自定义函数,而不是存储过程. 解决方案 假设我们数据库里有成员(members)和他们已经发送的信息(messages) 关系数据表,如Fi ...

  4. mysql 常用自定义函数解析

    -- /* -- * 用于获取一记录数据,根据传入的分隔字符delim,索引位置pos,返回相对应的value -- * SELECT Json_getKeyValue({"A": ...

  5. mysql 自定义函数

    原文:http://www.cnblogs.com/zhangminghui/p/4113160.html 引言 MySQL本身提供了内置函数,这些函数的存在给我们日常的开发和数据操作带来了很大的便利 ...

  6. Sql Server系列:自定义函数

    用户自定义函数可以像系统函数一样在查询或存储过程中调用,可以接受参数.执行操作并将操作结果以值的形式返回.返回值可以是单个标量或结果集. 1. 标量函数 标量函数返回一个确定类型的标量值,对于多语句的 ...

  7. asp.net MVC helper 和自定义函数@functions小结

    asp.net Razor 视图具有.cshtml后缀,可以轻松的实现c#代码和html标签的切换,大大提升了我们的开发效率.但是Razor语法还是有一些棉花糖值得我们了解一下,可以更加强劲的提升我们 ...

  8. PHP函数之自定义函数

    像数学中的函数一样,y=f(x)是函数基本的表达形式,x可看做是参数,y可看做是返回值,即函数定义就是一个被命名的.独立的代码段,它执行特定的任务,并可能给调用它的程序返回一个值. 自定义函数 函数的 ...

  9. C语言-自定义函数

    C语言自定义函数 --1-- 自定义函数定义 1.1 无参无返回值函数 1.2 无参有返回值函数 1.3 有参无返回值函数 1.4 有参有返回值函数 --2-- 函数的参数 2.1 形式参数介绍和使用 ...

随机推荐

  1. 【LeetCode】583. Delete Operation for Two Strings 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...

  2. 牛客练习赛39 B:选点(二叉树遍历+LIS)

    链接: https://ac.nowcoder.com/acm/contest/368/B 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语言262 ...

  3. 美和易思 · 「云农职互联网技术学院」HTML+CSS 做西普尼金表官网

    假期作业,好久没碰了,代码写得很烂......写博客纯属记录! 源代码下载地址:https://download.csdn.net/download/weixin_44893902/12805555 ...

  4. 【】VMware vSphere中三种磁盘规格的解释说明

    在VMware vSphere中,不管是以前的5.1版本,或者是现在的6.5版本,创建虚拟机时,在创建磁盘时,都会让选择磁盘的置备类型,如下图所示,分为: 厚置备延迟置零 厚置备置零 Thin Pro ...

  5. UI自动化,通过Xpath结合父类、同级元素,查找到唯一的元素定位

    UI自动化,通过Xpath定位的总结 当页面展示的内容的html布局格式一样,只能第几个控件的绝对定位来区分时,如果后面有变更控件的顺序,就会导致找不到这个元素,维护成本较高,可以尝试用其他的方式,比 ...

  6. python接口自动化,从excel取param的内容太多,使用eval转换报错'EOL while scanning string literal

    背景: 做接口自动化时,有个接口的参数内容很多,可以从excel中读取出来,但是在eval()进行转化时,就报错"'EOL while scanning string literal&quo ...

  7. git 忽略本地文件的修改

    项目开发过程中,会遇到本地配置文件每个开发人员不同的情况,但如果遇到类似数据库配置这种最终需要加入 git 版本控制的配置,则会陷入两难境地.要么不跟踪,要么有人提交后其他人同步下来必须手动修改,非常 ...

  8. 下面哪些命令可以查看file1文件的第300-500行的内容?

    下面哪些命令可以查看file1文件的第300-500行的内容? cat file1 | tail -n +300 | head -n 200 cat file1| head -n 500 | tail ...

  9. Golang实现集合(set)

    package set package set import ( "bytes" "fmt" "sync" ) type Set struc ...

  10. 阿里云服务器ECS Ubuntu16.04 初次使用配置教程(图形界面安装)

    原文链接:? 传送门 前一阵子购买了阿里云的云服务器ECS(学生优惠),折腾了一阵子后对有些东西不太满意,所以就重新初始化了磁盘,刚好要重新安装图形界面,于是就顺手写了这么一篇文章. 第一次登陆服务器 ...