# 数组 # 每个数组对应着一个层级的索引值 arrays = [['北京','北京','上海','上海'],['北大','清华','上交','复旦']] mindex = pd.MultiIndex.from_arrays...电子'], level=1) # 修改列二级索引 04 按层级排序索引 sortlevel对索引的不同层级按升降序的方法排序,level指定层级,ascending指定是否升序。...=1, ascending=False) # 对列二级索引倒序排序 05 索引层级互换 swaplevel对指定的两个索引层级进行互换,比如将2和3互换,1和2互换等等。...函数可以按指定的顺序进行重新排序,order参数可以是整数的level层级或者字符串的索引名,用法如下。...比如,对列索引进行此操作,得到了元组形式的一二级索引对。
可以将 MultiIndex 视为一个元组对数组,其中每个元组对都是唯一的。...1、基于列索引选取数据 # 基于列的第1层索引选取单列 scores['富强'] # 基于列的第1层索引选取多列,需要使用花式索引 scores[['富强','王亮']] 补充说明: 排序时默认按第一个字符的...sort_index()没有指明对哪个级别的列索引排序,默认对两级列索引都做了排序。...scores.sort_index(axis=1,inplace=True) # axis=1指明对列索引按升序排列,注意inplace=True后才能看到排序结果 scores # axis=...sort_index()函数对索引进行排序。
通过 Hernan Rojas 学习熊猫 为新熊猫用户准备的一套课程:bitbucket.org/hrojas/learn-pandas 用 Python 进行实用数据分析 这个指南是一个介绍如何使用...) 使用分层索引进行高级索引 对MultiIndex进行排序 取值方法 索引类型 杂项索引常见问题解答 写时复制(CoW) 先前的行为 迁移至写时复制...索引的不同选择 基础知识 属性访问 切片范围 按标签选择 按位置选择 通过可调用进行选择 结合位置和基于标签的索引 选择随机样本 带扩展的设置...类似字典的 get() 方法 通过索引/列标签查找值 索引对象 设置/重置索引 返回视图与副本 MultiIndex / 高级索引 分层索引(MultiIndex...) 具有分层索引的高级索引 MultiIndex 的排序 Take 方法 索引类型 杂项索引 FAQ 写时复制(CoW) 之前的行为 迁移到写时复制
在本节中,我们将探索MultiIndex对象的直接创建,在对多重索引数据执行索引,切片和计算统计数据时的注意事项,以及在数据的简单和分层索引表示之间进行转换的有用例程。...例如,正如我们之前所做的那样,你可以从一个简单的数组列表中构造MultiIndex,提供每个层次中的索引值: pd.MultiIndex.from_arrays([['a', 'a', 'b', 'b'...排序和未排序索引 早些时候,我们简要地提到了一个警告,但我们应该在这里强调一下。如果索引未排序,多数MultiIndex切片操作将失败。在这里我们来看看。...我们首先创建一些简单的多重索引数据,其中索引不是按字母顺序排序: index = pd.MultiIndex.from_product([['a', 'c', 'b'], [1, 2]]) data =...由于各种原因,部分切片和其他类似操作要求MultiIndex中的层次是(按字母顺序)排序的。
但直接比较两个顺序不同的多重索引, 返回值是一个布尔值array, 并不如预期的那样。...方法4:使用pd.IndexSlice对层次索引按次级索引的值进行切片 df_using_mul.loc(axis=0)[pd.IndexSlice[:, 'street_1']] pd.IndexSlice...所以这里大概是有一个自动推断的过程:如果第一个位置是元组,那就默认是按照元组的相应位置去对应相应层级的索引的值;如果第一个位置是元素, 那就默认直接对应第一层索引的相应取值。...索引Slice的使用非常灵活 df_s.sum()默认为对列求和,因此返回一个长度为9的数值列表。...particular axis. # 有必要增加一个sort_index=True的参数, 使得可以通过该参数设置交换索引后是否按索引重新排序 df_using_mul.swaplevel??
在其内部,它只是一个扁平的标签序列,如下图所示: 还可以通过对行标签进行排序来获得同样的groupby效果: sort_index 你甚至可以通过设置一个相应的Pandas option 来完全禁用可视化分组...时同样适用于索引): 如何防止 stack/unstack 的排序 stack和unstack都有一个缺点,就是对结果的索引进行不可预知的排序。...而对于不那么琐碎的顺序,比如说,中国各省市的顺序,又该如何处理? 在这种情况下,Pandas所做的只是简单地按字母顺序排序,你可以看到下面: 虽然这是一个合理的默认值,但它仍然感觉不对。..."index"(又称 "info"轴); sort=False,可选择在操作后对相应的MultiIndex进行排序; inplace=False,可选择执行原地操作(对单个索引不起作用,因为它是不可变的...一般来说,使用get_level和set_level来对标签进行必要的修正就足够了,但是如果想一次性对MultiIndex的所有层次进行转换,Pandas有一个(名字不明确的)函数rename,它接受一个
对 Series 进行算术运算操作 对 Series 的算术运算都是基于 index 进行的。...我们可以用加减乘除(+ - * /)这样的运算符对两个 Series 进行运算,Pandas 将会根据索引 index,对响应的数据进行计算,结果将会以浮点数的形式存储,以避免丢失精度。 ?...你可以从一个包含许多数组的列表中创建多级索引(调用 MultiIndex.from_arrays ),也可以用一个包含许多元组的数组(调用 MultiIndex.from_tuples )或者是用一对可迭代对象的集合...排序 如果想要将整个表按某一列的值进行排序,可以用 .sort_values() : ? 如上所示,表格变成按 col2 列的值从小到大排序。...,index 表示按该列进行分组索引,而 columns 则表示最后结果将按该列的数据进行分列。
在多列上对 DataFrame 进行排序 按升序按多列排序 更改列排序顺序 按降序按多列排序 按具有不同排序顺序的多列排序 根据索引对 DataFrame 进行排序 按升序按索引排序 按索引降序排序 探索高级索引排序概念...在单列上对 DataFrame 进行排序 要根据单列中的值对 DataFrame 进行排序,您将使用.sort_values(). 默认情况下,这将返回一个按升序排序的新 DataFrame。...使用熊猫,您可以通过单个方法调用来完成此操作。如果要按升序对某些列进行排序,并按降序对某些列进行排序,则可以将布尔值列表传递给ascending....按升序按索引排序 您可以根据行索引对 DataFrame 进行排序.sort_index()。像在前面的示例中一样按列值排序会重新排序 DataFrame 中的行,因此索引变得杂乱无章。...您可以.set_index()在 pandas 文档中阅读有关使用的更多信息。 按索引降序排序 对于下一个示例,您将按索引按降序对 DataFrame 进行排序。
按值排序 sort_values(by='column name') 根据某个唯一的列名进行排序,如果有其他相同列名则报错。...示例代码: # 按值排序 df4_vsort = df4.sort_values(by=0, ascending=False) print(df4_vsort) 运行结果: 1...(hierarchical indexing) 下面创建一个Series, 在输入索引Index时,输入了由两个子list组成的list,第一个子list是外层索引,第二个list是内层索引。...索引对象 打印这个Series的索引类型,显示是MultiIndex 直接将索引打印出来,可以看到有lavels,和labels两个信息。...sortlevel() .sortlevel( )先对外层索引进行排序,再对内层索引进行排序,默认是升序。
Pandas 排序方法入门 快速提醒一下,DataFrame是一种数据结构,行和列都带有标记的轴。您可以按行或列值以及行或列索引对 DataFrame 进行排序。...在单列上对 DataFrame 进行排序 要根据单列中的值对 DataFrame 进行排序,您将使用.sort_values(). 默认情况下,这将返回一个按升序排序的新 DataFrame。...使用熊猫,您可以通过单个方法调用来完成此操作。如果要按升序对某些列进行排序,并按降序对某些列进行排序,则可以将布尔值列表传递给ascending....按升序按索引排序 您可以根据行索引对 DataFrame 进行排序.sort_index()。像在前面的示例中一样按列值排序会重新排序 DataFrame 中的行,因此索引变得杂乱无章。...您可以.set_index()在 pandas 文档中阅读有关使用的更多信息。 按索引降序排序 对于下一个示例,您将按索引按降序对 DataFrame 进行排序。
对 MultiIndex 进行排序 要有效地对 MultiIndex 对象进行索引和切片,它们需要被排序。与任何索引一样,您可以使用 sort_index()。...,如果它们具有 MultiIndex,则可以按级别对任何其他轴进行排序: In [111]: df.T.sort_index(level=1, axis=1) Out[111]: one...0.537020 y 0.110968 In [115]: dfm.loc[(1, 'z')] Out[115]: jolie jim joe 1 z 0.53702 此外,如果尝试对未完全按字典顺序排序的内容进行索引...CategoricalIndex(['a', 'a', 'a'], categories=['c', 'a', 'b'], ordered=False, dtype='category', name='B') 对索引进行排序将按照类别的顺序排序...整数索引 使用整数轴标签进行基于标签的索引是一个棘手的问题。
https://blog.csdn.net/sinat_35512245/article/details/54849139 题目:请编写一个程序,按升序对栈进行排序,要求最多只能使用一个额外的栈存放临时数据...---- 思路:首先申请一个栈sta来存放数据栈,再申请一个辅助栈help来存放临时数据,然后比较sta弹出的栈顶的值res与help栈顶元素的大小。...当sta栈不为空时: 1、如果help.empty()或者res的值压入help栈中; 2、如果help不为空并且res>help.top(),那么就把help中栈顶的值弹出并压入...sta栈,最后把res的值压入help栈中。
.dt 访问器 Series 提供了一个可以简单、快捷返回 datetime 属性值的访问器。这个访问器返回的也是 Series,索引与现有的 Series 一样。...排序 Pandas 支持三种排序方式,按索引标签排序,按列里的值排序,按两种方式混合排序。...按索引排序 Series.sort_index() 与 DataFrame.sort_index() 方法用于按索引层级对 pandas 对象排序。...Series.sort_values() 方法用于按值对 Series 排序。...DataFrame.sort_values() 方法用于按行列的值对 DataFrame 排序。
1.552862 129970 1.552862 Name: points, Length: 129971, dtype: float64 3.2.2 apply() 通过定义函数,使用apply对整个表进行转换...产生的是一个DataFrame ?...country_rev.index,MultiIndex 多级索引 MultiIndex([('Argentina', 'Mendoza Province'), ('Argentina...4.2 sort_values() 排序 上面例子可以看出,输出都是按照 index 排序的,我们有时希望按值排序。 cr.sort_values(by='len'),默认升序 ?...按多个值进行排序,cr.sort_values(by=['country', 'len']),先按国家字符串升序,然后按长度升序 ?
使用分层索引进行高级索引 在使用.loc进行高级索引时,将MultiIndex在语法上整合在一起有点具有挑战性,但我们已经尽力做到了。一般来说,MultiIndex 键采用元组的形式。...有一些模棱两可的情况,传递的索引器可能被误解为对两个轴进行索引,而不是例如对行的MultiIndex进行索引。...在 pandas 对象的reindex()和align()方法中使用参数level对值进行广播是很有用的。...对MultiIndex进行排序 为了有效地对MultiIndex对象进行索引和切片,它们需要被排序。与任何索引一样,您可以使用sort_index()。...CategoricalIndex(['a', 'a', 'a'], categories=['c', 'a', 'b'], ordered=False, dtype='category', name='B') 对索引进行排序将按照类别的顺序进行排序
# 直接修改原来的值 data['close'] = 1 # 这一列都变成1 # 或者 data.close = 1 2.3 排序 排序有两种形式,一种对于索引进行排序,一种对于内容进行排序: 2.3.1...(ascending=)给索引进行排序 这个股票的日期索引原来是从大到小,现在重新排序,从小到大: # 对索引进行排序 data.sort_index() 结果: 2.3.2 Series排序 (...以上这些函数可以对series和dataframe操作,这里我们按照时间的从前往后来进行累计 排序 # 排序之后,进行累计求和 data = data.sort_index() 对p_change进行求和...(4)自定义运算 apply(func, axis=0) func:自定义函数 axis=0:默认是列,axis=1为行进行运算 定义一个对列,最大值-最小值的函数 下面看个例子: data[['open...,对颜色分组,price进行聚合: # 按color分组,再取出price1列求平均值 col.groupby(['color'])['price1'].mean() # 和上述一个功能 col['price1
请参阅向量化字符串方法以获取完整的描述。 排序 pandas 支持三种排序方式:按索引标签排序、按列值排序以及按两者组合排序。...### 按值排序 Series.sort_values() 方法用于按其值对 Series 进行排序。...DataFrame.sort_values() 方法用于按其列或行值对 DataFrame 进行排序。可选的 by 参数可用于指定一个或多个列以确定排序顺序。...按数值排序 使用 Series.sort_values() 方法可以按其数值对 Series 进行排序。...使用 DataFrame.sort_values() 方法可以按其列或行数值对 DataFrame 进行排序。可选的 by 参数用于指定一个或多个列以确定排序顺序。
# 直接修改原来的值 data['close'] = 1 # 这一列都变成1 # 或者 data.close = 1 2.3 排序 排序有两种形式,一种对于索引进行排序,一种对于内容进行排序: 2.3.1...=)给索引进行排序 这个股票的日期索引原来是从大到小,现在重新排序,从小到大: # 对索引进行排序 data.sort_index() 结果: 2.3.2 Series排序 (1)使用series.sort_values...以上这些函数可以对series和dataframe操作,这里我们按照时间的从前往后来进行累计 排序 # 排序之后,进行累计求和 data = data.sort_index() 对p_change进行求和...4、自定义运算 apply(func, axis=0) func:自定义函数 axis=0:默认是列,axis=1为行进行运算 定义一个对列,最大值-最小值的函数 下面看个例子: data[['open...,对颜色分组,price进行聚合: # 按color分组,再取出price1列求平均值 col.groupby(['color'])['price1'].mean() # 和上述一个功能 col['price1
领取专属 10元无门槛券
手把手带您无忧上云