pandas入门学习四
来源:互联网 发布:手机视频相册制作软件 编辑:程序博客网 时间:2024/05/17 07:08
本文是学习《利用Python进行数据分析》的部分笔记,在这里感谢作者
pandas基本功能二:
1,:函数应用和映射
Numpy的ufuncs(元素级函数方法)也可以用于操作pandas对象
frame=DataFrame(np.random.randn(4,3),columns=list('bde'),index=['Utah','Ohio','Texas','Oregon'])frameOut[5]: b d eUtah 1.021003 -0.813102 -0.111531Ohio -0.450382 -0.532916 0.103158Texas -0.539250 -0.686338 -3.314287Oregon -0.173919 0.566496 -0.869736np.abs(frame)Out[6]: b d eUtah 1.021003 0.813102 0.111531Ohio 0.450382 0.532916 0.103158Texas 0.539250 0.686338 3.314287Oregon 0.173919 0.566496 0.869736另一个常见的操作是:将函数应用到由各列或者各行所形成的一维数组上。DataFrame的apply方法即可实现此功能:
f=lambda x:x.max()-x.min()frame.apply(f)Out[8]: b 1.560253d 1.379598e 3.417445dtype: float64
frame.apply(f,axis=1)Out[9]: Utah 1.834105Ohio 0.636073Texas 2.775037Oregon 1.436232dtype: float64许多最为常见的数组统计功能都被实现为DataFrame的方法(如sum和mean),因此无需使用apply方法。
除标量值外,传递给apply的函数还可以返回由多个值组成的Series:
def f(x): return Series([x.min(),x.max()],index=['min','max'])frame.apply(f)Out[14]: b d emin -0.539250 -0.813102 -3.314287max 1.021003 0.566496 0.103158此外,元素级的Python函数也是可以用的,加入你想得到frame中各个浮点值的格式化字符串,使用applymap即可:
format=lambda x: '%.2f' % x
frame.applymap(format)Out[17]: b d eUtah 1.02 -0.81 -0.11Ohio -0.45 -0.53 0.10Texas -0.54 -0.69 -3.31Oregon -0.17 0.57 -0.87之所以叫做applymap,是因为Series有一个应用于元素级函数的map方法:
frame['e'].map(format)Out[18]: Utah -0.11Ohio 0.10Texas -3.31Oregon -0.87Name: e, dtype: object2.排序和排名:
sort_index方法·用于对列名或者行名进行排序:有两个参数,一个是axis,另一个是ascending。默认等于true表示升序排列,等于false表示降序。
frame=DataFrame(np.arange(8).reshape((2,4)),index=['three','one'],columns=['d','a','b','c'])frameOut[20]: d a b cthree 0 1 2 3one 4 5 6 7frame.sort_index()Out[21]: d a b cone 4 5 6 7three 0 1 2 3frame.sort_index(axis=1)Out[22]: a b c dthree 1 2 3 0one 5 6 7 4
若要按值对Series进行排序,可以用其sort_values()方法:
obj=Series([4,7,-3,2])
obj.sort_values()Out[25]: 2 -33 20 41 7dtype: int64在DataFrame中,可以根据一个或者多个列中的值进行排序,将一个或者多个列的名字传递给by选项即可达到该目的:
frame=DataFrame({'b':[4,7,-3,2],'a':[0,1,0,1]})
frame.sort_values(by='b')Out[30]: a b2 0 -33 1 20 0 41 1 7三:带有重复值的索引:
便签唯一不是强制性的:索引的is_unique属性可以告诉你它的值是否是唯一的:
obj=Series(range(5),index=['a','a','b','b','c'])obj.index.is_uniqueOut[33]: False
0 0
- pandas入门学习四
- 学习Pandas(四)
- pandas入门学习一
- pandas入门学习二
- pandas入门学习五
- pandas入门学习六
- Pandas入门学习总结
- pandas入门学习
- 利用Python数据分析:pandas入门(四)
- python数据分析pandas包入门学习(四)处理缺失数据
- pandas学习(四)--数据的归一化
- python学习笔记一(pandas入门)
- python机器学习库入门之pandas
- pandas入门
- pandas入门
- Pandas入门
- Pandas入门
- pandas入门
- Web Service实例测试
- Retrofit2.0+RxJava+RxAndroid——强强联合的网络请求框架
- spring boot 系列
- angular2 component css设置样式为全局样式
- 使用Spring JDBC时遇到的Software caused connection abort: recv failed问题
- pandas入门学习四
- 如何对一个大的项目进行模块化编程。
- 虚拟机的安装
- 中间件技术ActiveMQ消息中间件的使用
- 神奇的服务容器
- leetcode[59]Spiral Matrix II
- 快速幂的两种算法
- 控制对文件的访问
- linux中权限的意义