python/pandas/numpy数据分析(十)-函数, rank,重复索引
2016-12-28 15:02
751 查看
DataFrame的apply方法,将函数应用到行或者列形成的一维数组上.
除了标量以外,传递给apply的函数还可以返回由多个值组成的Series:
如果你想得到frame中各个浮点值的各个格式化字符串,使用applymap
之所以叫applymap,是因为Series中有个函数叫map
最小的为1
根据值在源数据中出现的顺序给出排名
也可以按照降序进行排名
最小的是7
frame=pd.DataFrame(np.random.randn(4,3),columns=list('bde'),index=['Utha','Ohio','Texas','Oregon']) frame
. | b | d | e |
---|---|---|---|
Utha | -0.683356 | -0.577942 | -0.022012 |
Ohio | -0.230113 | -1.240582 | -0.497071 |
Texas | -0.487803 | 0.044398 | 0.958905 |
Oregon | -0.178136 | -1.201671 | -0.921106 |
np.abs(frame)
. | b | d | e |
---|---|---|---|
Utha | 0.683356 | 0.577942 | 0.022012 |
Ohio | 0.230113 | 1.240582 | 0.497071 |
Texas | 0.487803 | 0.044398 | 0.958905 |
Oregon | 0.178136 | 1.201671 | 0.921106 |
f=lambda x: x.max()- x.min() frame.apply(f) b 0.505220 d 1.284980 e 1.880011 dtype: float64 frame.apply(f, axis=1) Utha 0.661344 Ohio 1.010468 Texas 1.446708 Oregon 1.023536 dtype: float64
除了标量以外,传递给apply的函数还可以返回由多个值组成的Series:
def f(x): return pd.Series([x.min(),x.max()], index=['min','max']) frame.apply
. | b | d | e |
---|---|---|---|
min | -0.683356 | -1.240582 | -0.921106 |
max | -0.178136 | 0.044398 | 0.958905 |
frame.apply(f,axis=1)
. | min | max |
---|---|---|
Utha | -0.683356 | -0.022012 |
Ohio | -1.240582 | -0.230113 |
Texas | -0.487803 | 0.958905 |
Oregon | -1.201671 | -0.178136 |
format=lambda x: '%.2f' % x frame.applymap(format)
. | b | d | e |
---|---|---|---|
Utha | -0.68 | -0.58 | -0.02 |
Ohio | -0.23 | -1.24 | -0.50 |
Texas | -0.49 | 0.04 | 0.96 |
Oregon | -0.18 | -1.20 | -0.92 |
frame['e'].map(format) Utha -0.02 Ohio -0.50 Texas 0.96 Oregon -0.92 Name: e, dtype: objec
rank
rank函数返回从小到大排序的下标,对于平级的数,rank是通过“为各组分配一个平均排名”的方式破坏评级关系obj = pd.Series([7,-5,7,4,2,0,4]) print (obj.rank()) 0 6.5 1 1.0 2 6.5 3 4.5 4 3.0 5 2.0 6 4.5 dtype: float64
最小的为1
根据值在源数据中出现的顺序给出排名
obj.rank(method='first') 0 6.0 1 1.0 2 7.0 3 4.0 4 3.0 5 2.0 6 5.0 dtype: float64
也可以按照降序进行排名
obj.rank(ascending=False, method='max') 0 2.0 1 7.0 2 2.0 3 4.0 4 5.0 5 6.0 6 4.0 dtype: float64
最小的是7
import numpy as np import pandas as pd import matplotlib.pyplot as plt from pandas import Series,DataFrame #虽然pandas的很多函数(如reindex)要求标签唯一,但是并不具有强制性 obj = Series(range(5),index = list('aabbc')) print obj #索引是否唯一用is_unique看是否唯一 pri 4000 nt obj.index.is_unique #对于重复值的索引,选取的话返回一个Series,唯一的索引返回一个标量 print obj['a'] #对于DataFrame也是如此 df = DataFrame(np.random.randn(4,3),index = list('aabb')) print df print df.ix['b'] #####自己导入数据的时候数据处理之前可以做一下index唯一性等,自己创建DataFrame注意不能这样
相关文章推荐
- Python数据分析常用手册——Numpy和Pandas
- Python数据分析与展示(2)——Numpy数据存取与函数
- Python数据分析:NumPy、pandas中(axis=0 与axis=1)区分
- python中添加数据分析工具numpy和pandas
- python数据分析库,numpy与pandas
- Python常用的数据分析工具入门: numpy和pandas入门
- python/pandas/numpy数据分析(七)-MultiIndex
- 利用python/pandas/numpy做数据分析(三)-透视表pivot_table
- 学习Python数据分析(1)----numpy,Pandas,matplotlib,scipy 的安装
- Python数据分析笔记——Numpy、Pandas库
- 利用Python进行数据分析(11) pandas基础: 层次化索引
- 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍 一、pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主
- python3.6中安装numpy,pandas,scipy,scikit_learn,matplotlib等数据分析工具
- 学习Python数据分析随手笔记【一】numpy数组的函数简单应用
- Python数据分析模块 | pandas做数据分析(三):统计相关函数
- 数据分析之Pandas(二):索引、过滤 、算术运算、 函数应用和映射
- python数据分析学习笔记-Numpy-Matplotlib-Pandas
- python/pandas/numpy数据分析(十一)-相关系数与协方差
- 利用Python进行数据分析(11) pandas基础: 层次化索引
- Python数据分析:pandas中Dataframe的groupby与索引