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

数据分析工具Pandas1.什么是Pandas?2.Pandas的数据结构SeriesDataFrame3.Pandas的索引操作索引对象IndexSeries索引DataFrame索引高级索引:标签

文章来源:Python数据分析 参考学习资料: http://pandas.pydata.org 1.什么是Pandas Pandas的名称来自于面板数据(panel data)和Python数据分析...Pandas是一个强大的分析结构化数据的工具集,基于NumPy构建,提供了 高级数据结构 和 数据操作工具,它是使Python成为强大而高效的数据分析环境的重要因素之一。...的数据结构 import pandas as pd Pandas有两个最主要也是最重要的数据结构: Series 和 DataFrame Series Series是一种类似于一维数组的 对象...:标签、位置和混合 Pandas的高级索引有3种 1. loc 标签索引 DataFrame 不能直接切片,可以通过loc来做切片 loc是基于标签名的索引,也就是我们自定义的索引名 示例代码...,可将其看作ndarray的索引操作 标签的切片索引是包含末尾位置的 ---- 4.Pandas的对齐运算 是数据清洗的重要过程,可以按索引对齐进行运算,如果没对齐的位置则补NaN,最后也可以填充

3.9K20

懂Excel就能轻松入门Python数据分析包pandas(十四):对比更新

后来才发现,原来不是 Python 数据处理厉害,而是他有数据分析神器—— pandas 前言 有时候我们需要对比两份数据有哪些不同值,在 Excel 中虽然没有实现对比功能,但通过公式也可以简单完成...不过你可能没想到的是,在 pandas 中实现对比功能,与 Excel 有异曲同工之处。...现在看看 pandas 中怎么实现: - pandas 中的原理其实与 Excel 操作是一样的,不过我们只需要写一次"双等号",pandas 会自动让2个表的每个值做对比 案例2 你会埋怨说,...: - 现在修改后的表格数据,是按销量降序排列 这次我们不能直接根据位置判断,不过只需要简单调整即可: - 关键1(红线部分),加载数据时,把第一列作为行索引 - 关键2(蓝线部分),让"乱序表"按..."原始表"的索引重置一下 - 其他部分不变 > 实际上,pandas 中的判断是根据行列索引自动对齐 案例4 有时候,同事不会给你完整的数据表,他只提供修改的记录: 这次你不再需要关心哪些被修改了

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

    懂Excel就能轻松入门Python数据分析包pandas(十四):对比更新

    后来才发现,原来不是 Python 数据处理厉害,而是他有数据分析神器—— pandas 前言 有时候我们需要对比两份数据有哪些不同值,在 Excel 中虽然没有实现对比功能,但通过公式也可以简单完成...不过你可能没想到的是,在 pandas 中实现对比功能,与 Excel 有异曲同工之处。...现在看看 pandas 中怎么实现: - pandas 中的原理其实与 Excel 操作是一样的,不过我们只需要写一次"双等号",pandas 会自动让2个表的每个值做对比 案例2 你会埋怨说,...: - 现在修改后的表格数据,是按销量降序排列 这次我们不能直接根据位置判断,不过只需要简单调整即可: - 关键1(红线部分),加载数据时,把第一列作为行索引 - 关键2(蓝线部分),让"乱序表"按..."原始表"的索引重置一下 - 其他部分不变 > 实际上,pandas 中的判断是根据行列索引自动对齐 案例4 有时候,同事不会给你完整的数据表,他只提供修改的记录: 这次你不再需要关心哪些被修改了

    73510

    Pandas-Series知识点总结

    series创建 根据list pandas有两种主要的数据结构,第一种是Series,是一种类似于一维数组的数据结构,它由一组数据以及一组与之相关的数据标签组成。...obj.index #RangeIndex(start=0, stop=4, step=1) obj.values #array([ 4, 7, -5, 3]) 索引在默认情况下是0-n-1,不过我们可以指定索引的值...#输出 a -5 b 7 c 3 d 4 e 0 dtype: int64 reindex函数还有一个method属性,进行差值填充,但是索引必须是单调递增或者单调递减的...0.006738 c 20.085537 dtype: float64 可以把Series看成是一个定长的有序字典,因为他是索引值到数据值的一个映射,它可以用在许多原本需要字典参数的函数中...b' in obj2 #True Series最重要的一个功能是:它在算术运算中会自动对齐不同索引的数据: obj3 + obj4 #输出 California NaN Ohio

    33900

    Pandas-Series知识点总结

    1、Series创建 根据list pandas有两种主要的数据结构,第一种是Series,是一种类似于一维数组的数据结构,它由一组数据以及一组与之相关的数据标签组成。...obj.index #RangeIndex(start=0, stop=4, step=1) obj.values #array([ 4, 7, -5, 3]) 索引在默认情况下是0-n-1,不过我们可以指定索引的值...#输出 a -5 b 7 c 3 d 4 e 0 dtype: int64 reindex函数还有一个method属性,进行差值填充,但是索引必须是单调递增或者单调递减的,...0.006738 c 20.085537 dtype: float64 可以把Series看成是一个定长的有序字典,因为他是索引值到数据值的一个映射,它可以用在许多原本需要字典参数的函数中 b...' in obj2 #True Series最重要的一个功能是:它在算术运算中会自动对齐不同索引的数据: obj3 + obj4 #输出 California NaN Ohio

    68530

    懂Excel轻松入门Python数据分析包pandas(十八):pandas 中的 vlookup

    pandas 中怎么实现: - 行6、7,由于现在需要姓名匹配,我们把2份数据的姓名列设置为行索引 - 行9,简单调用 update 方法,表示 df_tg 按照 df_src 更新值 由于 pandas...的数据表(DataFrame) 有行列索引,并且总是行列索引对齐,因此匹配数据是轻而易举的事情。...: > 不多讲解 Excel 的做法了,因为随着需求难度逐渐提升,公式会越来越"丑" 同样看看 pandas 的做法: 你可能会觉得是我贴错了代码,这不就是案例1的代码吗?...pandas 没有那么多花俏的东西,还是那段代码: - 行6和7,设置 姓名 与 城市 作为行索引即可,其他代码不变 这里的案例只是行索引为多层索引,实际上即使是列标题为多层复合,也能用同样的方式匹配...> 多层索引及其应用,以及更多关于数据更新的高级应用,请关注我的 pandas 专栏 总结

    1.8K40

    懂Excel轻松入门Python数据分析包pandas(十八):pandas 中的 vlookup

    pandas 中怎么实现: - 行6、7,由于现在需要姓名匹配,我们把2份数据的姓名列设置为行索引 - 行9,简单调用 update 方法,表示 df_tg 按照 df_src 更新值 由于 pandas...的数据表(DataFrame) 有行列索引,并且总是行列索引对齐,因此匹配数据是轻而易举的事情。...: > 不多讲解 Excel 的做法了,因为随着需求难度逐渐提升,公式会越来越"丑" 同样看看 pandas 的做法: 你可能会觉得是我贴错了代码,这不就是案例1的代码吗?...pandas 没有那么多花俏的东西,还是那段代码: - 行6和7,设置 姓名 与 城市 作为行索引即可,其他代码不变 这里的案例只是行索引为多层索引,实际上即使是列标题为多层复合,也能用同样的方式匹配...> 多层索引及其应用,以及更多关于数据更新的高级应用,请关注我的 pandas 专栏 总结 本文重点: - DataFrame.update 是更新值的好工具 - 构造好行列索引,是关键

    3K20

    单调栈,栈还能单调一下?

    之前遇到一个算法题目,自己只会用时间复杂度 O(N^2) 暴力解法解决,有大佬说用单调栈,可以做到 O(N) 的时间复杂度,当时我的表情是这样的: 啥是单调栈?怎么用呢?...什么是单调栈 单调栈,首先是一个栈,满足先进后出的特性,其次是出栈有点特殊: 遇到一个新元素,如果它比栈顶元素小,那就让它入栈,否则就弹出栈顶元素,直到这个新元素比栈顶元素小,再让它入栈。...这样的话,最终的结果就是栈内的元素是从栈底到栈顶是递减的,其出栈的顺序就是递增的,这样的栈叫做单调递增栈。 反过来就是单调递减栈。 听起来很容易理解,真正实战的时候,还是有点烧脑。...返回的数组的第 i 个位置的值应当是,对于原数组中的第 i 个元素,至少往右走多少步,才能遇到一个比自己大的元素,如果之后没有比自己大的元素,或者已经是最后一个元素,则在返回数组的对应位置放上 -1。...next_g[origin_index] = num # 将原元素的索引保存下来 stack.append((index

    2K30

    mongodb分片模式分片键的选择

    已经分片的数据,分片键不可更改。 分片键必须加上索引。 分片键的选择对分片的性能、效率和可扩展性都有着重要影响。分片键和索引也会影响集群的分片策略。 3....声明分片键 sh.shardCollection( namespace, key ) namespace是一个 .类型的字符串; key是一个document的组成部分,而且它的索引是横向索引。...分片键索引 分片键必须有索引,索引可以是分片键上的索引,当分片键是索引前缀时,也可以是复合索引。...注意:分片键索引必须是横向(正向),比如用id做索引时定义为key{id:1} 参考:https://docs.mongodb.com/manual/core/sharding-shard-key/#sharding-shard-key-indexes...它计算单一字段上的hash值作为索引值和分片键。 ? 如果要使用hash分片键,首先分片键数据散列度必须要高,拥有很多不同的值。

    6.3K50

    索引的数据结构及算法原理--InnoDB索引实现

    虽然InnoDB也使用B+Tree作为索引结构,但具体实现方式却与MyISAM截然不同。 第一个重大区别是InnoDB的数据文件本身就是索引文件。...从上文知道,MyISAM索引文件和数据文件是分离的,索引文件仅保存数据记录的地址。而在InnoDB中,表数据文件本身就是按B+Tree组织的一个索引结构,这棵树的叶节点data域保存了完整的数据记录。...这个索引的key是数据表的主键,因此InnoDB表数据文件本身就是主索引。 图10是InnoDB主索引(同时也是数据文件)的示意图,可以看到叶节点包含了完整的数据记录。这种索引叫做聚集索引。...因为InnoDB的数据文件本身要按主键聚集,所以InnoDB要求表必须有主键(MyISAM可以没有),如果没有显式指定,则MySQL系统会自动选择一个可以唯一标识数据记录的列作为主键,如果不存在这种列,...再例如,用非单调的字段作为主键在InnoDB中不是个好主意,因为InnoDB数据文件本身是一颗B+Tree,非单调的主键会造成在插入新记录时数据文件为了维持B+Tree的特性而频繁的分裂调整,十分低效,

    64810

    MySQL索引背后的数据结构及算法原理MySQL索引背后的数据结构及算法原理MyISAM索引实现InnoDB索引实现

    MySQL索引背后的数据结构及算法原理 MyISAM索引实现 ? image.png InnoDB索引实现 虽然InnoDB也使用B+Tree作为索引结构,但具体实现方式却与MyISAM截然不同。...第一个重大区别是InnoDB的数据文件本身就是索引文件。从上文知道,MyISAM索引文件和数据文件是分离的,索引文件仅保存数据记录的地址。...图10 图10是InnoDB主索引(同时也是数据文件)的示意图,可以看到叶节点包含了完整的数据记录。这种索引叫做聚集索引。...因为InnoDB的数据文件本身要按主键聚集,所以InnoDB要求表必须有主键(MyISAM可以没有),如果没有显式指定,则MySQL系统会自动选择一个可以唯一标识数据记录的列作为主键,如果不存在这种列,...再例如,用非单调的字段作为主键在InnoDB中不是个好主意,因为InnoDB数据文件本身是一颗B+Tree,非单调的主键会造成在插入新记录时数据文件为了维持B+Tree的特性而频繁的分裂调整,十分低效,

    53420

    用FPGA实现双调排序(1)

    双调序列(Bitonic Sequence)的定义:双调序列是一个先单调递增后单调递减的序列,即存在两种单独特性,故为“双调”。...从数学角度而言,对于序列(a[0],a[1],…,a[n-1]): (1)如果存在索引号j,其中0≤j是单调递增,同时(a[j],…,a[n-1])是单调递减的...; (2)在条件(1)无法满足的情况下,如果存在索引号i,且0≤i<n,使得(a[i],…,a[n-1],a[0],…,a[i-1])满足条件(1) 换言之,序列本身先单调递增后单调递减或者序列经过循环移位后先单调递增再单调递减...但其实下面几种情形都是双调序列,图①和图②不再赘述。图③“升->降->升”,通过循环移位即可变为先单调递增再单调递减序列。图④“降->升->降”,仍可通过循环移位变为先单调递增再单调递减序列。...需要注意的是完全单调递增或者完全单调递减的序列也是双调序列,例如(0,1,4,5)和(7,5,3)均为双调序列。 双调序列的性质: (1)双调序列的子序列仍为双调序列。

    43110

    我写了一个套路,助你随心所欲运用二分搜索

    同时,x, f(x), target还要满足以下条件: 1、f(x)必须是在x上的单调函数(单调增单调减都可以)。 2、题目是让你计算满足约束条件f(x) == target时的x的值。...这就是「搜索左侧边界」这个基本题型,解法代码之前都写了,但这里面x, f(x), target分别是什么呢?...我们可以把数组中元素的索引认为是自变量x,函数关系f(x)就可以这样设定: // 函数 f(x) 是关于自变量 x 的单调递增函数 // 入参 nums 是不会改变的,所以可以忽略,不算自变量 int...现在我们确定了自变量x是吃香蕉的速度,f(x)是单调递减的函数,target就是吃香蕉的时间限制H,题目要我们计算最小速度,也就是x要尽可能小: 这就是搜索左侧边界的二分搜索嘛,不过注意f(x)是单调递减的...现在我们确定了自变量x是船的载重能力,f(x)是单调递减的函数,target就是运输总天数限制D,题目要我们计算船的最小载重,也就是x要尽可能小: 这就是搜索左侧边界的二分搜索嘛,结合上图就可写出二分搜索代码

    1.1K40

    单调栈,好难。。。

    这个时候,有个同学提出一个疑问: 实际上,单调栈的题目无论是从左向右还是从右向左遍历数组都是可以的,代码框架类似,我们以一道大厂真题来具体解释一下正序和逆序的一个区别。...区别在于,本题需要找到的是右边下一个更大元素的索引,而非与当前元素的间隔,显然变得更加简单了。 我们讲过,类似这种要求寻找左边/右边最近的更大/更小元素的题目,均可以使用单调栈来完成。...正序遍历 逆序遍历 单调栈顺序 栈中储存的索引所对应在原数组中的元素大小,从栈底至栈顶单调递减,即更大的数(的下标)位于栈底 入栈时机 栈顶元素反复出栈并修改ans之后,进行入栈。...# 栈中储存的索引所对应在height中的元素大小,从栈底至栈顶单调递减 # 即更大的数(的下标)位于栈底 stack = list() # 构建列表ans,用来保存输出结果 # 初始化其中所有的元素均为...不管是正序还是逆序遍历,均仅需一次遍历height数组。 空间复杂度:O(N)。单调栈所占用的额外空间。

    23030

    单调栈解题模板秒杀三道算法题

    单调栈模板 首先,看一下 Next Greater Number 的原始问题,这是力扣第 496 题「下一个更大元素 I」: 给你一个数组,返回一个等长的数组,对应索引存储着下一个更大元素,如果没有更大的元素...问题变形 单调栈的使用技巧差不多了,来一个简单的变形,力扣第 1118 题「一月有多少天」: 给你一个数组T,这个数组存放的是近几天的天气气温,你返回一个等长的数组,计算:对于每一天,你还要至少等多少天才能等到一个更暖和的气温...(T.size()); // 这里放元素索引,而不是元素 stack s; /* 单调栈模板 */ for (int i = T.size() - 1; i...0 : (s.top() - i); // 将索引入栈,而不是元素 s.push(i); } return res; } 单调栈讲解完毕,下面开始另一个重点...print(arr[index % n]); index++; } 这个问题肯定还是要用单调栈的解题模板,但难点在于,比如输入是[2,1,2,4,3],对于最后一个元素 3,如何找到元素 4

    48720

    【甘泉算法】一文搞定单调栈问题

    在数据结构理论中,常常使用模运算来模拟环状的数据结构,循环数组[1,2,1]的长度为3,索引为3的元素是1,因为3 % 3 = 0,索引为3的元素其实就是0号元素,所以处理循环数组的索引直接使用模运算:...从左向右遍历,构建单调递增栈,找到自始至终没有出栈的最大索引left; 从右向左遍历,构建单调递减栈,找到自始至终没有出栈的最小索引right; 左边的索引找到最大值,右边的索引找到最小值,这样囊括出来的数组肯定是最短无序连续子数组...所以高度5的左边界索引为1,右边界索引为4,所以宽度为2,即4 - 1 -1,所以高度5构造出来的最大面积是10; 当2弹出后,栈顶元素为1,此时栈顶元素1对应的高度1是小于4对应的高度2的,...6,左边界是1,所以索引4对应的高度2构造出来的面积是8,因为宽度是4,即6 - 1 - 1; 那么该如何计算出最后一个1索引对应的面积呢?...这道题是一道困难题,但是如果你的单调栈思想融会贯通了,我个人觉得这道题只能算一道中等题。 我们做个简单分析:从左向右遍历数组,且维护一个单调递减栈,栈内存储的是数组的下标索引。

    81630
    领券