首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python数据分析笔记——Numpy、Pandas库

(2)创建DataFrame: 最常用的一种方法是直接传入一个等长列表或numpy数组组成的字典: 结果DataFrame会自动加上索引(添加方法与Series一样),且全部列会被有序排列。...如果指定了列序列、索引,则DataFrame的列会按指定顺序及索引进行排列。 也可以设置DataFrame的index和columns的name属性,则这些信息也会被显示出来。...(3)获取DataFrame的值(行或列) 通过查找columns值获取对应的列。(下面两种方法) 通过索引字段ix查找相应的行。 (4)对列进行赋值处理。 对某一列可以赋一个标量值也可以是一组值。...也可以给某一列赋值一个列表或数组,其长度必须跟DataFrame长度相匹配。如果赋值的是一个Series,则对应的索引位置将被赋值,其他位置的值被赋予空值。...3、算数运算和数据对齐 (1)Series 与Series之间的运算 将不同索引的对象进行算数运算,在将对象进行相加时,如果存在时,则结果的索引就是该索引的并集,而结果的对象为空。

6.4K80

Python开发之Pandas的使用

一、简介 Pandas 是 Python 中的数据操纵和分析软件包,它是基于Numpy去开发的,所以Pandas的数据处理速度也很快,而且Numpy中的有些函数在Pandas中也能使用,方法也类似。...或arrays或),或者是DataFrame; index是索引,输入列表,如果没有设置该参数,会默认以0开始往下计数; columns是列名,输入列表,如果没有设置该参数,会默认以0开始往右计数;...df.iloc[0,1] #先访问行再访问列 df['two']['a'] #先访问列再访问行 out: 2 3、删除、增加元素 使用.drop函数删除元素,默认为删除行,添加参数...two a 2 b 4 ==值得注意的是,drop函数不会修改原数据,如果想直接对原数据进行修改的话,可以选择添加参数inplace = True或用原变量名重新赋值替换。...除此之外,还可以使用count()函数对非NaN数据进行统计计数。

2.9K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    python数据科学系列:pandas入门详细教程

    前者是将已有的一列信息设置为标签列,而后者是将原标签列归为数据,并重置为默认数字标签 set_axis,设置标签列,一次只能设置一列信息,与rename功能相近,但接收参数为一个序列更改全部标签列信息(...由于该方法默认是按行进行检测,如果存在某个需要需要按列删除,则可以先转置再执行该方法 异常值,判断异常值的标准依赖具体分析数据,所以这里仅给出两种处理异常值的可选方法 删除,drop,接受参数在特定轴线执行删除一条或多条记录...由于pandas是带标签的数组,所以在广播过程中会自动按标签匹配进行广播,而非类似numpy那种纯粹按顺序进行广播。...count、value_counts,前者既适用于series也适用于dataframe,用于按列统计个数,实现忽略空值后的计数;而value_counts则仅适用于series,执行分组统计,并默认按频数高低执行降序排列...;sort_values是按值排序,如果是dataframe对象,也可通过axis参数设置排序方向是行还是列,同时根据by参数传入指定的行或者列,可传入多行或多列并分别设置升序降序参数,非常灵活。

    15.3K21

    炒鸡简单,带你快速撸一遍Numpy代码!

    数组的元素如果也是数组(可以是 Python 的原生 array,也可以是 ndarray)的情况下,则构成了多维数组。 NumPy 数组便于对大量数据进行高级数学和其他类型的操作。...在三维数据中,axis = 0表示组,1表示行,2表示列。这是为什么呢?提示一下,三位数组的shape中组、行和列是怎样排序的? 所以,axis的赋值一定要考虑数组的shape。...切片的第一个元素:表示的是选择所有行,第二个元素:-1表示的是从第0列至最后一列(不包含),所以结果如上所示。...array([0, 1, 2]) 通过布尔运算筛选 这里在中括号中添加筛选条件,当该条件的结果为True时(即满足条件时),返回该值。...相同的是: 二者都可以使用参数axis来决定依照哪个轴进行排序,axis = 0时按照列排序,axis = 1时按照行排序; 不同的是: np.sort()不会更改原数组;ndarray.sort()会更改原数组

    1.6K40

    看图学NumPy:掌握n维数组基础知识点,看这一篇就够了

    和一维数组一样,上图的view表示,切片数组实际上并未进行任何复制。修改数组后,更改也将反映在切片中。 axis参数 在许多操作(例如求和)中,我们需要告诉NumPy是否要跨行或跨列进行操作。...实际上,如果我们需要做的就是向数组的边界添加常量值,那么pad函数就足够了: ? Meshgrid 如果我们要创建以下矩阵: ? 两种方法都很慢,因为它们使用的是Python循环。...不过NumPy具有多个函数,允许按列进行排序: 1、按第一列对数组排序:a[a[:,0].argsort()] ? argsort排序后,此处返回原始数组的索引数组。...△RGB图像数组(为简便起见,上图仅2种颜色) 如果数据的布局不同,则使用concatenate命令堆叠图像,并在axis参数中提供显式索引数会更方便: ?...如果不方便使用axis,可以将数组转换硬编码为hstack的形式: ? 这种转换没有实际的复制发生。它只是混合索引的顺序。 混合索引顺序的另一个操作是数组转置。检查它可能会让我们对三维数组更加熟悉。

    6K20

    炒鸡简单,带你快速撸一遍Numpy代码!

    数组的元素如果也是数组(可以是 Python 的原生 array,也可以是 ndarray)的情况下,则构成了多维数组。 NumPy 数组便于对大量数据进行高级数学和其他类型的操作。...在三维数据中,axis = 0表示组,1表示行,2表示列。这是为什么呢?提示一下,三位数组的shape中组、行和列是怎样排序的? 所以,axis的赋值一定要考虑数组的shape。...切片的第一个元素:表示的是选择所有行,第二个元素:-1表示的是从第0列至最后一列(不包含),所以结果如上所示。...array([0, 1, 2]) 通过布尔运算筛选 这里在中括号中添加筛选条件,当该条件的结果为True时(即满足条件时),返回该值。...相同的是: 二者都可以使用参数axis来决定依照哪个轴进行排序,axis = 0时按照列排序,axis = 1时按照行排序; 不同的是: np.sort()不会更改原数组;ndarray.sort()会更改原数组

    1.5K30

    Python开发之numpy的使用

    数组的元素如果也是数组(可以是 Python 的原生 array,也可以是 ndarray)的情况下,则构成了多维数组。 NumPy 数组便于对大量数据进行高级数学和其他类型的操作。...在三维数据中,axis = 0表示组,1表示行,2表示列。这是为什么呢?提示一下,三位数组的shape中组、行和列是怎样排序的?...5]]) #原数据已更改 4、添加 往ndarray中增加元素的办法跟python list也很类似,常用的有两种: 一种是添加(append),就是将新增的元素添加到ndarray的尾部 python...Code 相同的是: 二者都可以使用参数axis来决定依照哪个轴进行排序,axis = 0时按照列排序,axis = 1时按照行排序; 不同的是: np.sort()不会更改原数组;ndarray.sort...()会更改原数组

    1.4K20

    最全面的Pandas的教程!没有之一!

    如果不带 index 参数,Pandas 会自动用默认 index 进行索引,类似数组,索引值是 [0, ..., len(data) - 1] ,如下所示: 从 NumPy 数组对象创建 Series...于是我们可以选择只对某些特定的行或者列进行填充。比如只对 'A' 列进行操作,在空值处填入该列的平均值: ? 如上所示,'A' 列的平均值是 2.0,所以第二行的空值被填上了 2.0。...上面的结果中,Sales 列就变成每个公司的分组平均数了。 计数 用 .count() 方法,能对 DataFrame 中的某个元素出现的次数进行计数。 ?...最后,on='Key' 代表需要合并的键值所在的列,最后整个表格会以该列为准进行归并。 对于两个都含有 key 列的 DataFrame,我们可以这样归并: ?...index 表示按该列进行分组索引,而 columns 则表示最后结果将按该列的数据进行分列。

    26K64

    NumPy 和 Pandas 数据分析实用指南:1~6 全

    例如,我们可以将数组int_ones中的数字更改为 -1,就可以了。 但是,如果我尝试将其以无符号整数更改为 -1,则最终会得到 255。...但是请注意如果我们要更改此数组的假定副本中的条目,或者更改原始父数组的条目会发生什么。...在mat2中,如果我们将第一行和第一列中的元素(即元素(0, 0))更改为liam,则结果如下: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FWshjTtA-1681367023154...因此,所得数组的第一行和第一列的元素为[0, 0]。 在第一行和第二列中,我们有原始数组中的元素[0, 2]。 然后,在第二行和第一列中,我们具有原始数组的第三行和第一列中的元素。...我们将一个对象传递给包含将添加到现有对象中的数据的方法。 如果我们正在使用数据帧,则可以附加新行或新列。 我们可以使用concat函数添加新列,并使用dict,序列或数据帧进行连接。

    5.4K30

    Python的常用库的数组定义及常用操作

    Python支持的库非常多,这当然是它的一大优势,但是也会给我们实际应用中造成点小小的麻烦:每个库对于数据的定义和运算处理都不同,这就使得我们在写代码的时候经常会串掉,比如会一个手滑写成numpy.xarray...np.sort(array_name) # 数组整体排序 np.sort(array_name,axis=0) # 数组仅对行排序 np.sort(array_name,axis=1) # 数组仅对列排序...(condition,x,y) # 条件运算,数组中符合条件condition的更改为数值x,不符合的改为y result = np.amax(array_name,axis=0) # 求矩阵中每一列的最大值...=0) # 最后一行添加一行 result = np.append(array_name,[[0], [2], [11]], axis=1) # 最后一列添加一列(注意添加元素格式) result =...中添加数据。

    1.3K20

    Java 中文官方教程 2022 版(三十五)

    换句话说,该列表只能包含产生更新计数的语句。 与Statement对象在创建时关联的列表最初为空。您可以使用方法addBatch向此列表添加 SQL 命令,并使用方法clearBatch清空它。...如果所有四个命令都成功执行,数据库管理系统将按照执行顺序为每个命令返回一个更新计数。指示每个命令影响了多少行的更新计数存储在数组updateCounts中。...当仓库员工使用 GUI 工具输入数据时,该工具将每个条目添加到一个数组中,CachedRowSet对象将使用该数组在后台执行更新。完成库存后,PDA 将其新数据发送回总部,数据将上传到主服务器。...该模型假设冲突会很少,甚至没有,因此不设置数据库锁。写入器会检查是否存在冲突,如果没有,则将对crs对象所做的更改写入数据库,这些更改变得持久。...lo和hi中的第一个元素进行检查的第一列。

    22500

    【他山之石】Pytorch学习笔记

    来源:知乎—勃疯疯 地址:https://zhuanlan.zhihu.com/p/419195914 01 第一章 NumPy基础 1.1 生成NumPy数组 1.1.1 从已有数据中创建数组...列;[1:3 , 1:3]取第一行到第三行的第一列到第三列;[1:3,: ]取第1, 2行;[ : ,1: 3]取第1, 2列 1.3 NumPy的算术运算 1.3.1 相乘 A*B 或 multiply...(A, B) 1.3.2 点积 1.4 数组变形 1.4.1 更改数组形状 NumPy中改变形状的函数 reshape改变向量行列,向量本身不变 resize改变向量行列及其本身 .T...;ravel( ) 按行展平 flatten 将矩阵转换为一行向量 squeeze 去掉矩阵中含1的维度 transpose 改变矩阵维度的顺序 1.4.2 合并数组 NumPy数组合并方法...;numel 计算元素个数 2.4.4 索引操作 常用选择操作函数 [ 0, : ] 第一行数据;[ : ,-1] 最后一列数据;nonzero 获取非零向量的下标 2.4.5 广播机制 torch.from_numpy

    1.6K30

    NumPy 笔记(超级全!收藏√)

    axis=0,表示沿着第 0 轴进行操作,即对每一列进行操作;axis=1,表示沿着第1轴进行操作,即对每一行进行操作。 ...:果是一个整数,就用该数平均切分,如果是一个数组,为沿轴切分的位置(左开右闭)axis:沿着哪个维度进行切向,默认为0,横向切分。...如果值的类型转换为要插入,则它与输入数组不同。 插入没有原地的,函数会返回一个新数组。 此外,如果未提供轴,则输入数组会被展开。 ...numpy.lexsort()  numpy.lexsort() 用于对多个序列进行排序。把它想象成对电子表格进行排序,每一列代表一个序列,排序时优先照顾靠后的列。 ...例如,一个数组的形状改变也会改变另一个数组的形状。  视图或浅拷贝  ndarray.view() 方会创建一个新的数组对象,该方法创建的新数组的维数更改不会更改原始数据的维数。

    4.6K30

    Python实现所有算法-高斯消除法

    一旦所有前导系数(每行中最左边的非零条目)都为 1,并且包含前导系数的每一列在其他地方都为零,则称该矩阵为简化行梯形形式。这种最终形式是独一无二的;换句话说,它与所使用的行操作序列无关。...出于计算原因,在求解线性方程组时,有时最好在矩阵完全约简之前停止行操作。 我们对其实现的操作只有这三个 如果矩阵与线性方程组相关联,则这些操作不会更改解集。...因此,如果一个人的目标是求解线性方程组,那么使用这些行操作可以使问题变得更容易。 对于矩阵中的每一行,如果该行不只包含零,则最左边的非零条目称为该行的前导系数(或枢轴)。...因此,如果两个前导系数在同一列中,则可以使用类型 3的行操作使这些系数之一为零。然后通过使用行交换操作,总是可以对行进行排序,以便对于每个非零行,前导系数位于上一行的前导系数的右侧。...如果矩阵的所有前导系数都等于 1(这可以通过使用类型 2 的基本行操作来实现),并且在包含前导系数的每一列中,则称矩阵为简化行梯形。

    1.7K30

    针对SAS用户:Python数据分析库pandas

    该包基于NumPy(发音‘numb pie’)中,一个基本的科学计算包,提供ndarray,一个用于数组运算的高性能对象。我们将说明一些有用的NumPy对象来作为说明pandas的方式。...一个例子是使用频率和计数的字符串对分类数据进行分组,使用int和float作为连续值。此外,我们希望能够附加标签到列、透视数据等。 我们从介绍对象Series和DataFrame开始。...可以认为Series是一个索引、一维数组、类似一列值。可以认为DataFrames是包含行和列的二维数组索引。好比Excel单元格按行和列位置寻址。...为了减轻上述错误的发生,在下面的数组例子中使用np.nan(缺失数据指示符)。也要注意Python如何为数组选择浮点数(或向上转型)。 ? 并不是所有使用NaN的算数运算的结果是NaN。 ?...它将.sum()属性链接到.isnull()属性来返回DataFrame中列的缺失值的计数。 .isnull()方法对缺失值返回True。

    12.1K20

    python数据分析——数据分类汇总与统计

    如果说用groupby进行数据分组,可以看做是基于行(或者说是index)操作的话,则agg函数则是基于列的聚合操作。...具体的办法是向agg传入一个从列名映射到函数的字典: 只有将多个函数应用到至少一列时,DataFrame才会拥有层次化的列 2.3.返回不含行索引的聚合数据 到目前为止,所有例中的聚合数据都有由唯一的分组键组成的索引...由于并不总是需要如此,所以你可以向groupby传入as_index=False以禁用该功能。 【例12】采用参数as_index返回不含行索引的聚合数据。...关键技术:分组键会跟原始对象的索引共同构成结果对象中的层次化索引。将group_keys= False传入groupby即可禁止该效果。...传入margins=True参数(添加小计/总计) ,将会添加标签为ALL的行和列。

    86410

    NumPy团队发了篇Nature

    Strides是将线性存储元素的计算机内存解释为多维数组所必需的,描述了在内存中向前移动的字节数,以便从行跳到行,从列跳到列等等。...例如,考虑一个形状为(4,3)的二维浮点数组,其中每个元素在内存中占据8个字节。要在连续的列之间移动,我们需要在内存中向前跳转8个字节,要访问下一行,需要3×8=24个字节。...因此该数组的步长为(24,8)。NumPy可以按C或Fortran内存顺序存储数组,先迭代行或列。这使得用这些语言编写的外部库可以直接访问内存中的NumPy数组数据。...一个例子是向数组添加标量值,但是广播也可以推广到更复杂的例子,比如缩放数组的每一列或生成坐标网格。在广播中,一个或两个数组被虚拟复制(即不复制存储器中的任何数据),使得操作数的形状匹配(d)。...理想情况下,使用NumPy函数或语义对专用数组进行操作会很简单,这样用户只需编写一次代码,然后就可以根据需要在NumPy数组、GPU数组、分布式数组等之间进行切换。

    1.8K21
    领券