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

Pandas函数应用、层级索引、统计计算1.Pandas函数应用apply 和 applymap排序处理缺失数据2.层级索引(hierarchical indexing)MultiIndex索引

文章来源:Python数据分析 1.Pandas函数应用 apply 和 applymap 1....按排序 sort_values(by='column name') 根据某个唯一列名进行排序,如果有其他相同列名则报错。...示例代码: # 按排序 df4_vsort = df4.sort_values(by=0, ascending=False) print(df4_vsort) 运行结果: 1...因为现在有两层索引,当通过外层索引获取数据时候,可以直接利用外层索引标签来获取。 当要通过内层索引获取数据时候,在list传入两个元素,前者是表示要选取外层索引,后者表示要选取内层索引。...1 d 0.567547 2 d -0.154148 dtype: float64 交换并排序分层 sortlevel() .sortlevel( )先对外层索引进行排序,再对内层索引进行排序

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

Pandas图鉴(四):MultiIndex

时同样适用于索引): 如何防止 stack/unstack 排序 stack和unstack都有一个缺点,就是对结果索引进行不可预知排序。...而对于不那么琐碎顺序,比如说,中国各省市顺序,又该如何处理? 在这种情况下,Pandas所做只是简单地按字母顺序排序,你可以看到下面: 虽然这是一个合理默认,但它仍然感觉不对。...,--在纯Pandas没有直接对应关系: pdi.insert_level(obj, pos, labels, name)用给定添加一个关卡(必要时适当广播),--在纯Pandas不容易做到...[0,1,2,3]) Parquet[3]文件格式支持索引DataFrame,没有任何提示(唯一限制是所有列标签必须是字符串),产生文件更小,而且工作速度更快(见基准): df.to_parquet...指标算术 在整体使用索引DataFrame操作,适用与普通DataFrame相同规则(见第三部分)。但处理单元格子集有其自身一些特殊性。

44520

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

Numpy数组基本运算 1、数组和标量之间预算 2、元素级数组函数 是指对数组每个元素执行函数运算。下面例子是对数组各元素执行平方根操作。...Pandas基本功能 1、重新索引 Pandas对象一个方法就是重新索引(reindex),其作用是创建一个新索引pandas对象将按这个新索引进行排序。对于不存在索引,引入缺失。...(1)Series数据结构排序和排名 a、按索引进行排序 b、按进行排序 默认情况下,排序是按升序排列,但也可通过ascending=False进行降序排列。...obj.rank() (2)DataFrame数据结构排序和排名 按索引进行排列,一列或进行排序,通过by将列名传递给sort_index. 5、缺失数据处理 (1)滤出缺失数据 使用data.dropna...8、计数 用于计算一个Series出现次数。 9、层次化索引 层次化索引pandas一个重要功能,它作用是使你在一个轴上拥有两个或多个索引级别

6.4K80

数据整合与数据清洗

选择列。ix、iloc、loc方法都可使用。 只不过ix和loc方法,行索引是前后都包括,而列索引则是前包后不包(与列表索引一致)。 iloc方法则和列表索引一致,前包后不包。...当参数axis为0时,纵向合并。 当参数axis1时,横向合并。...# ignore_index=True表示忽略两表原先索引,合并并重新排序索引,drop_duplicates()表示去重 print(pd.concat([df1, df2], ignore_index...05 排序 Pandas排序方法有以下三种。 sort_values、sort_index、sortlevel。 第一个表示按排序,第二个表示按索引排序,第三个表示按级别排序。...03 数据分箱 分箱法包括等深分箱(每个分箱样本数量一致)和等宽分箱(每个分箱取值范围一致)。 其中Pandasqcut函数提供了分箱实现方法,默认是实现等宽分箱。

4.6K30

直观地解释和可视化每个复杂DataFrame操作

Unstack 取消堆叠将获取索引DataFrame并对其进行堆叠,将指定级别索引转换为具有相应新DataFrame列。在表上调用堆栈后再调用堆栈不会更改该堆栈(原因是存在“ 0 ”)。...堆叠参数是其级别。在列表索引索引为-1将返回最后一个元素。这与水平相同。级别-1表示将取消堆叠最后一个索引级别(最右边一个)。...作为另一个示例,当级别设置为0(第一个索引级别)时,其中将成为列,而随后索引级别(第二个索引级别)将成为转换后DataFrame索引。 ?...另一方面,如果一个键在同一DataFrame列出两次,则在合并表中将列出同一键每个组合。...由于每个索引/行都是一个单独项目,因此串联将其他项目添加到DataFrame,这可以看作是行列表。

13.3K20

Python替代Excel Vba系列(四):课程表分析与动态可视化图表

并且尽可能让每个部分都有可视化输出。 本文要点: 使用 pandas 快速按需求做汇总整理。...如下图: 表一行表示 某一天某课时是哪位教师负责哪门科目。 这里名字按照原有数据做了脱敏(teach 列)。...看看每个级别的主科目占比情况。如下: 这次我们汇总主键是 级别和主科目。 可以看到其实与之前流程基本一致,只是在分组时加上了 grade 字段。...此时 apm 行索引中都有上午和下午。 .unstack() ,把 apm 从行索引移到列索引。那么就会有 上午列 和 下午列。...---- .stack(dropna=False) ,把 apm 从列索引移回去行索引,dropna=False ,让其保留 nan 。 此时即可确保所有的教师都有上下午2行数据。

1.7K20

PythonPandas相关操作

1.Series(序列):Series是Pandas一维标记数组,类似于带标签数组。它可以容纳任何数据类型,并具有标签(索引),用于访问和操作数据。...每个Series和DataFrame对象都有一个默认整数索引,也可以自定义索引。 4.选择和过滤数据:Pandas提供了灵活方式来选择、过滤和操作数据。...可以使用标签、位置、条件等方法来选择特定行和列。 5.缺失数据处理:Pandas具有处理缺失数据功能,可以检测、删除或替换数据缺失。...7.数据排序和排名:Pandas提供了对数据进行排序和排名功能,可以按照指定列或条件对数据进行排序,并为每个元素分配排名。...# 按照某一列排序 df.sort_values('Age') # 按照排序 df.sort_values(['Age', 'Name']) # 对DataFrame元素进行排名 df

25430

【Mark一下】46个常用 Pandas 方法速查表

例如可以从dtype返回仅获取类型为bool列。 3 数据切片和切块 数据切片和切块是使用不同列或索引切分数据,实现从数据获取特定子集方式。...Out: col1 col2 col3 0 2 a True 1 1 b True选择col3为True所有记录列单条件以所有的列为基础选择符合条件数据...1 1 b 1筛选数据col2为b记录 5 数据预处理操作 Pandas数据预处理基于整个数据框或Series实现,整个预处理工作包含众多项目,本节列出通过Pandas...1 0 col2 a b a行索引、列名以及数据相互调换sort_values按排序,默认为正序,可通过ascending=False指定倒序排序In: print(data2.sort_values...1.0 Name: col1, dtype: int64以col2列为索引建立数据透视表,默认计算方式为求均值 8 高级函数使用 Pandas能直接实现数据框级别高级函数应用,而不用写循环遍历每条记录甚至每个后做计算

4.8K20

Pandas 秘籍:6~11

Pandas 显示多重索引级别与单级别的列不同。 除了最里面的级别以外,屏幕上不会显示重复索引。 您可以检查第 1数据帧以进行验证。 例如,DIST列仅显示一次,但它引用了前两列。...最里面的多重索引级别是最接近数据级别。 这将是最底部级别和最右边索引级别。 步骤 2 通过首先使用多重索引方法get_level_values.检索每个级别的基础来定义新列。...默认情况下,unstack方法使用最里面的索引级别作为新索引级别从外部从零开始编号。 Pandas 默认将unstack方法level参数设置为-1,这是指最里面的索引。...准备 当用列进行分组或聚合时,所得 Pandas 对象将在一个或两个轴上具有多个级别。 在本秘籍,我们将命名每个每个级别,然后使用stack/unstack方法将数据显着重塑为所需形式。...sort_index方法被调用两次,并对每个级别的实际进行排序。 请注意,列级别是列名SATMTMID和UGDS。 通过步骤 6 进行堆叠和拆栈,我们可以得到截然不同输出。

33.9K10

超全pandas数据分析常用函数总结:下篇

5.1 数据合并 用merge合并 DataFrame.merge(self,right,how =‘inner’,on = None) right指要合并对象 on指要加入列或索引级别名称,必须在两个...5.3 按照特定列排序: 按照索引列进行排序: data.sort_index() 按照money进行排序: data.sort_values(by="money",ascending = True...#pandas.DataFrame.loc pandas.DataFrame.iloc() 允许输入:整数5、整数列表或数组[4,3,0]、整数切片对象1:7 更多关于pandas.DataFrame.iloc...6.2.5 用iloc取连续多行和列 提取第3行到第6行,第4列到第5列,取得是行和列交叉点位置。 data.iloc[2:6,3:5] 输出结果: ?...6.2.6 用iloc取不连续多行和列 提取第3行和第6行,第4列和第5列交叉 data.iloc[[2,6],[3,5]] 输出结果: ?

3.9K20

超全pandas数据分析常用函数总结:下篇

5.1 数据合并 用merge合并 DataFrame.merge(self,right,how =‘inner’,on = None) right指要合并对象 on指要加入列或索引级别名称,必须在两个...5.3 按照特定列排序: 按照索引列进行排序: data.sort_index() 按照money进行排序: data.sort_values(by="money",ascending = True...#pandas.DataFrame.loc pandas.DataFrame.iloc() 允许输入:整数5、整数列表或数组[4,3,0]、整数切片对象1:7 更多关于pandas.DataFrame.iloc...6.2.5 用iloc取连续多行和列 提取第3行到第6行,第4列到第5列,取得是行和列交叉点位置。 data.iloc[2:6,3:5] 输出结果: ?...6.2.6 用iloc取不连续多行和列 提取第3行和第6行,第4列和第5列交叉 data.iloc[[2,6],[3,5]] 输出结果: ?

4.9K20

pandas连接函数concat()函数「建议收藏」

如果传递了dict,则排序键将用作键参数,除非它被传递,在这种情况下,将选择(见下文)。任何无对象将被静默删除,除非它们都是无,在这种情况下将引发一个ValueError。...如果为True,请不要使用并置轴上索引。结果轴将被标记为0,…,n-1。如果要连接其中并置轴没有有意义索引信息对象,这将非常有用。注意,其他轴上索引在连接仍然受到尊重。...用于其他n-1特定索引,而不是执行内部/外部设置逻辑。 keys:序列,默认无。使用传递键作为最外层构建层次索引。如果为索引,应该使用元组。 levels:序列列表,默认无。...用于构建MultiIndex特定级别(唯一)。否则,它们将从键推断。 names:list,default无。结果层次索引级别的名称。....index]) #设置索引为df1索引 pandas文档:http://pandas.pydata.org/pandas-docs/stable/ 发布者:全栈程序员栈长,转载请注明出处:https

65510

Python之PandasSeries、DataFrame实践

Python之PandasSeries、DataFrame实践 1. pandas数据结构Series 1.1 Series是一种类似于一维数组对象,它由一组数据(各种NumPy数据类型)以及一组与之相关数据标签...dataframe数据是以一个或者多个二位块存放(而不是列表、字典或者别的一维数据结构)。 3.索引对象 pandas索引对象负责管理轴标签和其他元素(比如轴名称等)。...排序和排名 要对行或列索引进行排序(按字典顺序),可使用sort_index方法,它将返回一个已排序新对象;对于DataFrame,则可以根据任意一个轴上索引进行排序。 8....处理缺失数据(Missing data) 9.1 pandas使用浮点NaN(Not a Number)表示浮点和非浮点数组缺失数据。...层次化索引 层次化索引(hierarchical indexing)是pandas一项重要功能,它使你能在一个轴上拥有多个(两个以上)索引级别。抽象点说,它是你能以低维度形式处理高维度数据。

3.9K50

Python 数据分析(PYDA)第三版(四)

([["Ohio", "Ohio", "Colorado"], ["Green", "Red", "Green"]], names=["state", "color"]) 重新排序排序级别 有时您可能需要重新排列轴上级别的顺序或按特定级别对数据进行排序...这是一个对一连接示例;df1数据有多行标记为a和b,而df2每个在key列只有一行。...由于right1索引是唯一,这种“一对”合并(使用默认how="inner"方法)可以保留与输出行对应left1索引。...2 5 如果在每个子组未找到级别所有,则取消堆叠可能会引入缺失数据: In [133]: s1 = pd.Series([0, 1, 2, 3], index=["a...在某些情况下,以这种格式处理数据可能更加困难;您可能更喜欢拥有一个 DataFrame,其中包含一个以date列时间戳为索引每个不同item列。

25600

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

交叉选择行和列数据 我们可以用 .xs() 方法轻松获取到多级索引某些特定级别的数据。比如,我们需要找到所有 Levels ,Num = 22 行: ?...因为我们没有指定堆叠方向,Pandas 默认按行方向堆叠,把每个索引按顺序叠加。 如果你想要按列方向堆叠,那你需要传入 axis=1 参数: ? 注意,这里出现了一大堆空。...排序 如果想要将整个表按某一列进行排序,可以用 .sort_values() : ? 如上所示,表格变成按 col2 列从小到大排序。...要注意是,表格索引 index 还是对应着排序行,并没有因为排序而丢失原来索引数据。...请注意,每个 Excel 表格文件都含有一个或多个工作表,传入 sheet_name='Sheet1' 这样参数,就表示只读取 'excel_output.xlsx' Sheet1 工作表内容

25.8K64

Pandas 对数值进行分箱操作4种方法总结对比

1、between & loc Pandas .between 方法返回一个包含 True 布尔向量,用来对应 Series 元素位于边界 left 和 right[1] 之间。...在前面的示例,我们为每个级别定义了分数间隔,这回使每个级别的学生数量不均匀。在下面的示例,我们将尝试将学生分类为 3 个具有相等(大约)数量分数等级。...df.grade.value_counts() 4、value_counts 虽然 pandas .value_counts 通常用于计算系列唯一数量,但它也可用于使用 bins 参数 [4]...将 sort 设置为 False 以按其索引升序对系列进行排序。 series 索引是指每个 bin 区间范围,其中方括号 [ 和圆括号 ) 分别表示边界是包含和不包含。...返回series 表示每个 bin 中有多少条记录。 与 .qcut 不同,每个 bin 记录数不一定相同(大约)。.

1K40
领券