pandas 运算】的更多相关文章

本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 随着其功能的不断优化与扩充,pandas已然成为数据分析领域最受欢迎的工具之一,但其仍然有着一个不容忽视的短板--难以快速处理大型数据集,这是由于pandas中的工作流往往是建立在单进程的基础上,使得其只能利用单个处理器核心来实现各种计算操作,这就使得pandas在处理百万级.千万级甚至更大数据量时,出现了明显的性能瓶颈. 本文要介绍的工具mod…
本文就Pandas的运行效率作一个对比的测试,来探讨用哪些方式,会使得运行效率较好. 测试环境如下: windows 7, 64位 python 3.5 pandas 0.19.2 numpy 1.11.3 jupyter notebook 需要说明的是,不同的系统,不同的电脑配置,不同的软件环境,运行结果可能有些差异.就算是同一台电脑,每次运行时,运行结果也不完全一样. 1 测试内容 测试的内容为,分别用三种方法来计算一个简单的运算过程,即 a*a+b*b . 三种方法分别是: python的…
Data frame 和 series 的运算:横列相加减:按照index ,row 的方向直接相加减.frame-series纵列相加减:按照 columns,运用算术函数,相加减. frame.sub(series3, axis=0) '''operation between data frame and series '''import numpy as npfrom pandas import Series, DataFrame arr = np.arange(12.).reshape(…
首先要给那些不熟悉 Pandas 的人简单介绍一下,Pandas 是 Python 生态系统中最流行的数据分析库.它能够完成许多任务,包括: 读/写不同格式的数据 选择数据的子集 跨行/列计算 寻找并填写缺失的数据 在数据的独立组中应用操作 重塑数据成不同格式 合并多个数据集 先进的时序功能 通过 matplotlib 和 seaborn 进行可视化操作 尽管 Pandas 功能强大,但它并不为整个数据科学流程提供完整功能.Pandas 通常是被用在数据采集和存储以及数据建模和预测中间的工具,作…
1 简介 pandas虽然是个非常流行的数据分析利器,但很多朋友在使用pandas处理较大规模的数据集的时候经常会反映pandas运算"慢",且内存开销"大". 特别是很多学生党在使用自己性能一般的笔记本尝试处理大型数据集时,往往会被捉襟见肘的算力所劝退.但其实只要掌握一定的pandas使用技巧,配置一般的机器也有能力hold住大型数据集的分析. 图1 本文就将以真实数据集和运存16G的普通笔记本电脑为例,演示如何运用一系列策略实现多快好省地用pandas分析大型数…
本文主要是对公众号之前发布的文章进行分类整理,方面大家查阅,以后会不定期对文章汇总进行更新与发布.   一.推荐阅读: Anaconda安装第三方包(whl文件) 福布斯系列之数据分析思路篇 福布斯系列之数据采集 python求职Top10城市,来看看是否有你所在的城市 Python:一篇文章掌握Numpy的基本用法 Pandas: 如何将一列中的文本拆分为多行? 2017年上半年过去了,你读了多少本书? 二.文章分类汇总: Python基础: Python读取和处理文件后缀为".sqlite&…
数据聚合与分组运算——GroupBy技术(1),有需要的朋友可以参考下. pandas提供了一个灵活高效的groupby功能,它使你能以一种自然的方式对数据集进行切片.切块.摘要等操作.根据一个或多个键(可以是函数.数组或DataFrame列名)拆分pandas对象.计算分组摘要统计,如计数.平均值.标准差,或用户自定义函数.对DataFrame的列应用各种各样的函数.应用组内转换或其他运算,如规格化.线性回归.排名或选取子集等.计算透视表或交叉表.执行分位数分析以及其他分组分析. 1.首先来看…
分组级运算和转换 假设要添加一列的各索引分组平均值 第一种方法 import pandas as pd from pandas import Series import numpy as np df = pd.DataFrame([[-2.04708,1.393406,'a','one'], [0.478943,0.092908,'a','two'], [-0.519439,0.281746,'b','one'], [-0.555730,0.769023,'b','two'], [1.96578…
pandas学习(数据分组与分组运算.离散化处理.数据合并) 目录 数据分组与分组运算 离散化处理 数据合并 数据分组与分组运算 GroupBy技术:实现数据的分组,和分组运算,作用类似于数据透视表 数据分组--〉归纳 程序示例: import numpy as np import pandas as pd # 读入数据 df=pd.read_csv('data1.txt') print('原始数据') print(df) #返回一个对象 group=df.groupby(df['产地']) #…
pandas DataFrame进行向量化运算时,是根据行和列的索引值进行计算的,而不是行和列的位置: 1. 行和列索引一致: import pandas as pd df1 = pd.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6], 'c': [7, 8, 9]}) df2 = pd.DataFrame({'a': [10, 20, 30], 'b': [40, 50, 60], 'c': [70, 80, 90]}) print df1 + df2 a b…
pandas库的数据类型运算 算数运算法则 根据行列索引,补齐运算(不同索引不运算,行列索引相同才运算),默认产生浮点数 补齐时默认填充NaN空值 二维和一维,一维和0维之间采用广播运算(低维元素与每一个高维元素运算) 采用 +-*/符号的二元运算会产生新的对象 a = pd.DataFrame(np.arange(12).reshape(3,4)) a b = pd.DataFrame(np.arange(20).reshape(4,5)) b # 维度相同,行列内元素个数不同的运算,自动补齐…
这篇介绍下有index索引的pandas Series是如何进行向量化运算的: 1. index索引数组相同: s1 = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd']) s2 = pd.Series([10, 20, 30, 40], index=['a', 'b', 'c', 'd']) print s1 + s2 a 11 b 22 c 33 d 44 dtype: int64 直接把各个索引对应的值进行相加 2. index索引数组值…
pandas 是基于 Numpy 构建的含有更高级数据结构和工具的数据分析包 pandas 也是围绕着 Series 和 DataFrame 两个核心数据结构展开的, 导入如下: from pandas import Series,DataFrame import pandas as pd import numpy as np Series可以理解为一个一维的数组,只是index可以自己改动.类似于定长的有序字典,有Index和value.传入一个list[]/tuple(),就会自动生成一个S…
Pandas分组运算(groupby)修炼 Pandas的groupby()功能很强大,用好了可以方便的解决很多问题,在数据处理以及日常工作中经常能施展拳脚. 今天,我们一起来领略下groupby()的魅力吧. 首先,引入相关package: import pandas as pd import numpy as np groupby的基础操作 In [2]: df = pd.DataFrame({'A': ['a', 'b', 'a', 'c', 'a', 'c', 'b', 'c'], ..…
对数据集进行分组并对各组应用一个函数(无论是聚合还是转换),通常是数据分析工作中的重要环节.在将数据集加载.融合.准备好之后,通常是计算分组统计或生成透视表.pandas提供了一个灵活高效的groupby功能,它使你能以一种自然的方式对数据集进行切片.切块.摘要等操作. 关系型数据库和SQL能够如此流行的原因之一就是能够方便地对数据进行连接.过滤.转换和聚合.但是,像SQL这样的查询语言所能执行的分组运算的种类很有限.在本部分你将会看到,由Python和pandas强大的表达能力,我们可以执行复…
通过聚合运算可以得到我们比较感兴趣的数据以方便处理 import pandas as pd import numpy as np # 先创建一组数据表DataFrame df = pd.DataFrame({'key1':['a','a','b','b','a'], 'key2':['one','two','one','two','one'], 'data1':np.random.randint(1,10,5), 'data2':np.random.randint(1,10,5)}) # 这组数…
pandas提供了一个灵活高效的groupby功能,它使你能以一种自然的方式对数据集进行切片.切块.摘要等操作.根据一个或多个键(可以是函数.数组或DataFrame列名)拆分pandas对象.计算分组摘要统计,如计数.平均值.标准差,或用户自定义函数.对DataFrame的列应用各种各样的函数.应用组内转换或其他运算,如规格化.线性回归.排名或选取子集等.计算透视表或交叉表.执行分位数分析以及其他分组分析. 1.首先来看看下面这个非常简单的表格型数据集(以DataFrame的形式): impo…
pandas最重要的一个功能是,它可以对不同索引的对象进行算数运算.在对象相加时,如果存在不同的索引对,则结果的索引就是该索引对的并集. Series s1=Series([,3.4,1.5],index=['a','c','d','e']) s2=Series([-,3.1],index=['a','c','e','f','g']) s1 Out[]: a 7.3 c -25.0 d 3.4 e 1.5 dtype: float64 s2 Out[]: a -2.1 c 3.6 e -1.5…
//2019.07.19/20 python中pandas数据分析基础(数据重塑与轴向转化.数据分组与分组运算.离散化处理.多数据文件合并操作) 3.1 数据重塑与轴向转换1.层次化索引使得一个轴上拥有多个索引2.series多层次索引:(1)series的层次化索引:主要可以通过s[索引第1层:索引第二次]可以进行相应的索引(2)对于series可以通过s.unstack()函数将其转换为DataFrame具体举例代码如下:s=pd.Series(range(1,10),index=[["a&…
人生苦短,我用 Python 前文传送门: 小白学 Python 数据分析(1):数据分析基础 小白学 Python 数据分析(2):Pandas (一)概述 小白学 Python 数据分析(3):Pandas (二)数据结构 Series 小白学 Python 数据分析(4):Pandas (三)数据结构 DataFrame 小白学 Python 数据分析(5):Pandas (四)基础操作(1)查看数据 小白学 Python 数据分析(6):Pandas (五)基础操作(2)数据选择 小白学…
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是pandas数据处理专题的第四篇文章,我们一起来聊聊DataFrame中的索引. 上一篇文章当中我们介绍了DataFrame数据结构当中一些常用的索引的使用方法,比如iloc.loc以及逻辑索引等等.今天的文章我们来看看DataFrame的一些基本运算. 数据对齐 我们可以计算两个DataFrame的加和,pandas会自动将这两个DataFrame进行数据对齐,如果对不上的数据会被置为Nan(not a number). 首先我…
本文示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 我们在使用pandas分析处理时间序列数据时,经常需要对原始时间粒度下的数据,按照不同的时间粒度进行分组聚合运算,譬如基于每个交易日的股票收盘价,计算每个月的最低和最高收盘价. 而在pandas中,针对不同的应用场景,我们可以使用resample().groupby()以及Grouper()来非常高效快捷地完成此类任务. 图1 2 在pan…
Numpy 的基本能力之一是快速对每个元素进行运算 Pandas 继承了Numpy的功能,也实现了一些高效技巧. 对于1元运算,(函数,三角函数)保留索引和列标签 对于2元运算,(加法,乘法),Pandas 会自动对齐索引进行计算. 通用函数:保留索引 对ser对象或 df对象使用Numpy通用函数,生成的结果是另一个保留索引的Pandas对象. 通用函数: 索引对齐 当Series 或 DataFram对象进行二元计算,会对齐俩个对象的索引 当处理不完整的额数据时,这一点非常方便 Series…
重新索引 (1)reindex重新索引,在已有的索引基础上新建索引,fill_value可以指定新建索引默认值 (2)#新建索引,如果新建的索引值为空自动填充之前的值 对于DataFrame重新索引同样适用 注意:重新索引的结果类似于一个拷贝动作,这里对df的第一行第一列数据进行重新赋值,但df2并未发生变化 注意:method方法填充只能行有效,对列无效,bfill对后填充 丢弃数据 运算 apply进行运算,默认按列运算,加上axis=1可按行运算 返回一个序列 applymap,对每个元素…
工作中经常碰到两列数据为date类型,当这两列数据相减或者相加时,得到天数,当运用这个值进行运算会报错:ufunc true_divide cannot use operands with types dtype('int64') and dtype('<m8[ns]'),我们只需要把'<m8[ns]'类型数据转换为int就可以继续运算 l = df1['计划结束时间'] - df1['计划开始时间']为: 这个数据是不能进行加减运算的 L = l.values / (24*60*60*100…
import pandas as pd import numpy as np s = pd.Series([1,3,5,6,8],index=list('acefh')) s.index # 读取行索引 # 输出 Index(['a', 'c', 'e', 'f', 'h'], dtype='object') s.reindex(list('abcdefgh')) # 索引再定义,与元索引相同,值不变,其它变为NaN s.reindex(list('abcdefgh'),fill_value=0…
1. groupby() import pandas as pd df = pd.DataFrame([[1, 1, 2], [1, 2, 3], [2, 3, 4]], columns=["A", "B", "C"]) print(df) g = df.groupby('A').mean() # 按A列分组(groupby),获取其他列的均值 print(g) # 方法1 b = df['B'].groupby(df['A']).mean()…
表与表之间的数据运算 #构建数据集df1=pd.DataFrame(np.random.random(32).reshape(8,4),columns=list('ABCD')) df2=pd.DataFrame(np.arange(1,33).reshape(8,4),columns=list('ABCD')) #进行加法运算 #注:加减乘除同理 data1=df1+df2 表与列之间的计算 这里不知道有没有别的函数可以调用,或者更简单的计算方式,等我发现了再更新. #构造一个Series d…
求和 对每行或每列求和. 均值 对每行或每列求均值. 最大最小值 对每行或每列求最大值或最小值. 中位数 对每行或每列求中位数. 相关系数和协方差 先导入一个DataFram结构的数据,再对这些数据计算相关系数和协方差. 数值统计 计算某一列相同值出现的个数.可以排序,显示范围. 计数 统计某一列的值的个数.…
一.reindex() 方法:重新索引 针对 Series   重新索引指的是根据index参数重新进行排序. 如果传入的索引值在数据里不存在,则不会报错,而是添加缺失值的新行. 不想用缺失值,可以用 fill_value 参数指定填充值. 例如:   fill_value 会让所有的缺失值都填充为同一个值,如果不想这样而是用相邻的元素(左或者右)的值填充,则可以用 method 参数,可选的参数值为 ffill 和 bfill,分别为用前值填充和用后值填充: 针对 DataFrame   重新…