,仅支持一维和二维数据,但数据内部可以是异构数据,仅要求同列数据类型一致即可 numpy的数据结构仅支持数字索引,而pandas数据结构则同时支持数字索引和标签索引 从功能定位上看: numpy虽然也支持字符串等其他数据类型...,当原标签列中不存在相应信息时,填充NAN或者可选的填充值 set_index/reset_index,互为逆操作,前者是将已有的一列信息设置为标签列,而后者是将原标签列归为数据,并重置为默认数字标签...切片形式访问时按行进行查询,又区分数字切片和标签切片两种情况:当输入数字索引切片时,类似于普通列表切片;当输入标签切片时,执行范围查询(即无需切片首末值存在于标签列中),包含两端标签结果,无匹配行时返回为空...类似的效果,二者的区别在于:merge允许连接字段重复,类似一对多或者多对一连接,此时将产生笛卡尔积结果;而concat则不允许重复,仅能一对一拼接。...一般而言,分组的目的是为了后续的聚合统计,所有groupby函数一般不单独使用,而需要级联其他聚合函数共同完成特定需求,例如分组求和、分组求均值等。 ?
关键技术: 二维数组索引语法总结如下: [对行进行切片,对列的切片] 对行的切片:可以有start:stop:step 对列的切片:可以有start:stop:step import pandas...可以采用arr<=15得到的布尔值作为索引,将小于或者等于15的数归零。具体程序代码如下所示: 2....axis-{0, 1, },默认值为0。这是要连接的轴。 join-{'inner', 'outer'},默认为’outer’。如何处理其他轴上的索引。外部表示联合,内部表示交叉。...如果为True,则不要使用连接轴上的索引值。生成的轴将标记为0…, n-1。 join_axes-这是索引对象的列表。用于其他(n-1)轴的特定索引,而不是执行内部/外部设置逻辑。...分位数运算 分位数是以概率依据将数据分割为几个等分,常用的有中位数(即二分位数)、四分位数、百分位数等。分位数是数据分析中常用的一个统计量,经过抽样得到一个样本值。
这系列将介绍Pandas模块中的Series,本文主要介绍: Series的切片Slice 位置切片 名称切片 Series的增删改查 添加Series的值(增) 删除Series的值(删) 通过索引修改...index为数值类型时候的不同,当index为数值类型的时候,使用位置索引会抛出keyerror的异常,也就是说当index为数值类型的时候,索引使用的是名称索引。...总的来说,当index为数值类型的时候: 进行索引的时候,相当于使用的是名称索引; 进行切片的时候,相当于使用的是位置切片; ?...Series的值(改) 其实此时介绍的修改Series的值和在4中介绍的一致,只不过将4中介绍的获取到的Series值进行重新的赋值即是修改对应Series的值,因此此处也有三种方式: 通过位置索引修改...value值; 通过名称索引修改value值; 通过点索引修改value值; 此处因为类似,所以只选择一个进行实验: import pandas as pd s = pd.Series([1,2,3,4
、和数据表的分组和整合来盘一盘 Pandas,目录如下: 由于篇幅原因,Pandas 系列分两贴,上贴讲前三节的内容,下帖讲后三节的内容。...(Hint: 看看两组里冒号 : 在不同位置,再想想 DataFrame 每一行和每一列中数据的特点) 布尔索引 在〖数组计算之 NumPy (上)〗提过,布尔索引就是用一个由布尔类型值组成的数组来选择元素的方法...在 Panel 那节已经提到过,多层索引可以将「低维数据」升维到「高维数据」,此外,多层索引还可以。。。。...试想,如果不用多层索引的 Series,我们需要用一个 DataFrame 来存储在这样的数据,把 index 设置成 dates,把 colums 设置成 codes。...地区」和「代号」设置为第一层 index 和第二层 index。
我们的基于元组的索引,本质上是一个基本的多重索引,而 Pandas 的MultiIndex类型为我们提供了我们希望拥有的操作类型。...作为额外维度的MultiIndex 你可能会注意到其他内容:我们可以使用带有索引和列标签的简单DataFrame,来轻松存储相同的数据。事实上,Pandas 的构建具有这种等价关系。...这可以通过将names参数传递给上述任何一个MultiIndex构造器,或者通过在事后设置索引的names属性来实现: pop.index.names = ['state', 'year'] pop...MultiIndex的索引和切片 MultiIndex上的索引和切片设计得很直观,如果你将索引视为添加的维度,它会有所帮助。...我们将不会在本文中进一步介绍这些面板结构,因为我在大多数情况下发现,对于更高维数据来说,多重索引是更有用且概念上更简单的表示。另外,面板数据基本上是密集数据表示,而多索引基本上是稀疏数据表示。
使用np.zeros(), np.ones(), np.eye(), np.empty() 创建特殊数组,这一点和matlab还是差不多的,不过需要注意的是,如果你要创建一个2*3的全零数组,那么就应该这么写...有一点很需要注意,数组切片是原始数组的视图,这就是说数据不会被复制到新的数组切片上,对数组切片的任何修改都会直接反应到原数组上,或者说数组切片只是一个对原数组内容的引用, 如下图。 ?...这里原始数组是一个2×2×4的三维数组,transpose的参数是元组(1, 0, 2),对应的下标索引为(0, 1, 2),对比可以知道,arr.transpose(1, 0, 2) 的意思就是将原数组...如果想要得到对某个轴向求平均,可以加上axis参数,如np.mean(arr, 1) 就是对行求平均。其他函数类似。 ? 基本数组统计方法 ? ?...===== 2016-06-29更新 ===== 注意,numpy.std() 求标准差的时候默认是除以 n 的,即是有偏的,而pandas.std() 默认是除以n-1 的,即是无偏的,如果想和numpy.std
后来才发现,原来不是 Python 数据处理厉害,而是他有数据分析神器—— pandas 前言 在 Excel 上处理表格非常自由方便,他不需要你把数据组织得非常规范。...中,同样非常简单,只需要一个方法就可以得到结果: - 行1:加载数据,注意参数 index_col=0 ,我们把 选手 列作为行索引,否则下面求平均时,就需要把 选手 列排除在外 - 行2:现在 df...- 但是,默认情况下,mean 方法中的参数 axis 为 0 ,意思是"对每列求平均",其结果是一行。...- 行4:对行排序 - 行5:使用 Series.iloc[] 做切片选择,从行中第2个数(索引是1)开始,直到倒数第2个(索引是-1)之间的数 - 行6:求平均 - 行8:调用 DataFrame.apply...axis 参数设置会有点难以理解, 我的 pandas 专栏第5节有关于轴的理解,可以去参考一下。
如果参与运算的一个是DataFrame,另一个是Series,那么pandas会对Series进行行方向的广播,然后做相应的运算。 4)....pandas 常用函数 pandas中的函数 一般会有两种结果,一是copy,即返回一个修改后的副本,原有的不变,二是inplace,即在原有基础上直接进行修改。...而且,这个一般会有一个inplace 的参数值指明是否是在原有基础上修改。...2. add() 和 append() 方法 add 类似+ 运算,将两个series 相加得到结果,append 则是将一个series 连接在前一个series的后面,类似列表的相加。...6. reindex() 方法 reindex函数可以将series的index换成其他的index。
:由于数据中包含了时间信息列(date和hour),为了方便操作,我们可以使用以下命令将时间列设置为索引。...此外,也可以对单个站点分时刻计算,比如: data['1001A'].resample('6h').mean() # 针对1001A站点,进行每6小时求平均 .resample 是重采样方法,其返回一个对象...索引切片: 可以理解成 idx 将 MultiIndex 视为一个新的 DataFrame,然后将上层索引视为行,下层索引视为列,以此来进行数据的查询。...上述操作返回的列仍然是 MultiIndex,因为此时只有一个站点了,我们可以使用 .xs 方法将列从MultiIndex转换为Index。...除了箱线图之外,Pandas还可以绘制折线图,条形图,饼图,密度分布等。这在数据分析时是比较方便的,但在图形美化或其他图形绘制还需要借助其他工具,比如统计绘图Seaborn更胜一筹。
回顾: Python数据分析之旅: 前戏 数据分析 | Numpy初窥 索引与切片 切片索引Numpy中选取数据子集或者单个元素的方式有很多,一维数组和Pyhon列表的功能差不多,看下图: ?...数组切片与列表最重要的区别在于:数组切片是原始数组的视图,这就是说数据不会被复制,视图上的任何修改都有会直接反映到源数据上,也就是说视图上的任何修改都有会直接改动到数据源,看下图运行效果: ?...多维数组 注意:直接给元素赋值,返回的数组都有是视图,是直接映射到数据源上,如有改变也会影响到数据源 ? ? ? 说明:布尔索引与花式索引不常用,不作讲解! 通用函数运算 ?...运算和数据处理 Numpy数组使你可以将许多种数据处理任务表述为简洁的数据表达式,否则需要编写循环,用数组表达式代替循环的做法通常称为失量化.失量化的运算比普通的Python运算更快. ?...线性代数 线性代数是任何数组库的重要组成,Numpy提供了一个用于矩阵乘法的dot函数 ? ? numpy.linalg中一组标准的矩阵分解运算,如求逆和行列式之类的东西.
它是pandas等其他各种工具的基础。...索引,只索取为True的部分,去掉False部分 通过布尔型索引选取数组中的数据,将总是创建数据的副本。... a[2:10] = 1 多维数组:a[1:2, 3:4] a[:,3:5] a[:,1] 4、强调:与列表不同,数组切片时并不会自动复制,在切片数组上的修改会影响原数组...答案:a[a>5] 原理: a>5会对a中的每一个元素进行判断,返回一个布尔数组 布尔型索引:将同样大小的布尔数组传进索引,会返回一个由所有True对应位置的元素的数组 问题2:给一个数组...argmin 求最小值索引argmax 求最大值索引 十一、NumPy:随机数生成 随机数生成函数在np.random子包内 常用函数 rand 给定形状产生随机数组(0到1之间的数)randint
但是numpy还有一个数据结构是mat。 个人觉得是为了便于使用以上语言的人们使用的。...例如mat结构可以非常方便地做转置(matName.T),求逆(matName.I),求伴随矩阵(matName.A) pandas pandas的Series数据结构对象:类似于numpy的ndarray...可以把python字典类型的数据直接给Series对象,pandas会自动将key转换为index,data还是data。...在具体执行时,对先比对index,对相同index的数据相加,如果obj有某个index而obj1没有,则数据为NaN。...数组切片: numpy的零矩阵 np.zeros((3,3)) 3维零矩阵,对于矩阵,形参必须是带括号()的,即tuple类型。
整篇总结,在详尽且通俗易懂的基础上,我力求使其有很强的条理性和逻辑性,所以制作了思维导图,对于每一个值得深究的函数用法,我也会附上官方链接,方便大家继续深入学习。...5.2 设置索引列 data.set_index("id") # 设置id为索引列 输出结果: ?...data.reset_index(drop=True) # 重置索引列,并且避免将旧索引添加为列 输出结果: ?...6.2 区域索引 6.2.1 用loc取连续的多行 提取索引值为2到索引值为4的所有行,即提取第3行到第5行,注意:此时切片的开始和结束都包括在内。 data.loc[2:4] 输出结果: ?...将满足origin是China或者money小于35这两个条件之中任意一个条件的数据,返回其id、date、money、product、department、origin值。
Python数据分析——Numpy、Pandas库 总第48篇 ▼ 利用Python进行数据分析中有两个重要的库是Numpy和Pandas,本章将围绕这两个库进行展开介绍。...如果赋值的是一个Series,则对应的索引位置将被赋值,其他位置的值被赋予空值。...Pandas基本功能 1、重新索引 Pandas对象的一个方法就是重新索引(reindex),其作用是创建一个新的索引,pandas对象将按这个新索引进行排序。对于不存在的索引值,引入缺失值。...obj.rank() (2)DataFrame数据结构的排序和排名 按索引值进行排列,一列或多列中的值进行排序,通过by将列名传递给sort_index. 5、缺失数据处理 (1)滤出缺失数据 使用data.dropna...8、值计数 用于计算一个Series中各值出现的次数。 9、层次化索引 层次化索引是pandas的一个重要功能,它的作用是使你在一个轴上拥有两个或多个索引级别。
以下面经典的titanic数据集为例,可以从两个方面特性来认识DataFrame: ? DataFrame是一个行列均由多个Series组成的二维数据表框,其中Series可看做是一个一维向量。...而每个dict内部则是一个以各行索引为key的子dict。..."访问 切片形式访问时按行进行查询,又区分数字切片和标签切片两种情况:当输入数字索引切片时,类似于普通列表切片;当输入标签切片时,执行范围查询(即无需切片首末值存在于标签列中),包含两端标签结果,无匹配行时返回为空...,但要求标签切片类型与索引类型一致。...这里仍然是执行条件查询,但与直观不大相符的是这里会返回全部结果,只是将不满足匹配条件的结果赋值为NaN或其他指定值,可用于筛选或屏蔽值 ? 6. query,提到query,还得多说两句。
数据框与R中的DataFrame格式类似,都是一个二维数组。Series则是一个一维数组,类似于列表。数据框是Pandas中最常用的数据组织方式和对象。...查看数据框的索引和列的类型、费控设置和内存用量信息。...例如可以从dtype的返回值中仅获取类型为bool的列。 3 数据切片和切块 数据切片和切块是使用不同的列或索引切分数据,实现从数据中获取特定子集的方式。...常见的数据切片和切换的方式如表3所示: 表3 Pandas常用数据切分方法 方法用途示例示例说明[['列名1', '列名2',…]]按列名选择单列或多列In: print(data2[['col1','...,默认计算方式为求均值 8 高级函数使用 Pandas能直接实现数据框级别高级函数的应用,而不用写循环遍历每条记录甚至每个值后做计算,这种方式能极大提升计算效率,具体如表8所示: 表8 Pandas
领取专属 10元无门槛券
手把手带您无忧上云