数据分析框架Pandas进阶
来源:互联网 发布:js jq时间段选择控件 编辑:程序博客网 时间:2024/06/05 20:39
广播运算
多维数据和一维数据进行运算称为广播,会自动按标签匹配对每个元素执行运算。
In [13]: frmOut[13]: 0 1 2a 0 1 2b 3 4 5c 6 7 8In [16]: sr2 = Series([3,2,4],index = range(3))In [17]: frm + sr2Out[17]: 0 1 2a 3 3 6b 6 6 9c 9 9 12
如果有不能匹配的标签,值均为NaN
In [18]: sr3 = Series([3,2,4],index =[0,2,3])In [19]: frm + sr3Out[19]: 0 1 2 3a 3.0 NaN 4.0 NaNb 6.0 NaN 7.0 NaNc 9.0 NaN 10.0 NaN
如果要在行上做广播,需要调用方法,并指定axis。这些运算都是在副本上进行,不会影响原始数据。
In [20]: sr4 = Series([3,2,4],index = list('abc'))In [23]: frm.add(sr4,axis = 0)Out[23]: 0 1 2a 3 4 5b 5 6 7c 10 11 12
使用函数
apply函数对每一列(或行)执行指定函数
applymap对每各元素执行操作
排序
sort_index可以按索引字典序排序,可以传入参数axis表示维度,ascending表示方向(True,False)
order按值排序,排序时NaN会被放到末尾
按某列值排序,使用sort_index(by = 指定列标签)
rank返回各元素在排好序后的位置,对于相等的元素,默认返回这些元素位置的平均数
In [7]: sr = Series([1,1,2,2,3])In [8]: sr.rank()Out[8]:0 1.51 1.52 3.53 3.54 5.0dtype: float64
可以使用method关键字使相等元素不返回相同rank,如min,max,first等
In [10]: sr.rank(method = 'first')Out[10]:0 1.01 2.02 3.03 4.04 5.0dtype: float64
汇总和计算统计
pandas提供sum,mean等多种统计方法。默认作用于每一列上,若要作用于行上需要指定axis。默认NA的值会自动排除,如果要考虑NA的值,可以设skipna = False
参数:axis,skipna
可使用的方法:
count 非NA值数量
describe 全面信息
min,max
argmin,argmax,(索引)
quantile 计算分位数
sum,mean,median
mad 平均绝对离差
var
std
skew 偏度http://baike.baidu.com/view/1216514.htm
kurt 峰度
偏度和峰度的关系:http://blog.sciencenet.cn/blog-1148346-786610.html
cumsum累积和
cummin,cummax
cumprod
diff 一阶差分http://baike.baidu.com/view/3747559.htm
pct_change 百分数变化y(i) = (x(i)-x(i-1))/x(i)
唯一值,值计数及成员资格
unique(): Series调用,返回array
In [2]: a =Series(['a','c','c','a','d'])In [3]: b = a.unique()In [4]: bOut[4]: array(['a', 'c', 'd'], dtype=object)
value_counts(): Series调用,返回Series,各元素出现次数,按频率降序排列
isin(): Series调用,返回bool型Series,表示元素出现与否
In [9]: aOut[9]:0 a1 c2 c3 a4 ddtype: objectIn [11]: b = a.isin(['a','d'])In [12]: bOut[12]:0 True1 False2 False3 True4 Truedtype: boolIn [13]: a[b]Out[13]:0 a3 a4 ddtype: object
对一个DataFrame的每一列分别统计元素出现次数,可以这样:
In [22]: data = DataFrame({'a':[0,2,4,4,3],'b':[3,4,0,1,2],'c':[1,0,3,2,3]})In [25]: dataOut[25]: a b c0 0 3 11 2 4 02 4 0 33 4 1 24 3 2 3In [23]: t = data.apply(value_counts).fillna(0)In [24]: tOut[24]: a b c0 1.0 1 1.01 0.0 1 1.02 1.0 1 1.03 1.0 1 2.04 2.0 1 0.0
- 数据分析框架Pandas进阶
- 数据分析框架Pandas入门
- pandas 数据分析入门
- Pandas数据分析基础
- python数据分析---Pandas
- Python 数据分析 pandas
- Pandas数据特征分析
- pandas数据分析0723
- 数据分析pandas用法
- 数据分析模块pandas
- 数据分析(2)-pandas
- Python 数据分析-pandas 基础
- pandas数据分析入门二
- wind pandas 数据分析绘图
- 数据分析:pandas分析链家网二手房信息
- 数据分析之Pandas-05数据加载
- 数据分析处理库Pandas-数据读取
- 数据分析处理库Pandas-数据预处理
- SERVLETJSP学习(五)—— 转发 、JSP开发常见问题
- C# 文本文件读写问题
- 8天学通MongoDB——第一天 基础入门
- Oracle 11gR2 RAC alert_+ASM1.log出现WARNING: failed to online diskgroup resource ora.CRS.dg (unable to
- 做点Tomcat的笔记
- 数据分析框架Pandas进阶
- echart实例
- PyCharm使用(三)—快捷键
- genymotion VT-x is disabled in the bios for both all CPU modes
- Spring+SpringMVC+MyBatis+Maven框架整合
- 圆形的Button
- MCP2515_SPI_CAN学习笔记
- 最全的常用正则表达式大全——包括校验数字、字符、一些特殊的需求等
- Process, Thread, Coroutine Relationship