pandas-06 Series和Dataframe的排序操作

pandas-06 Series和Dataframe的排序操作

对pandas中的Series和Dataframe进行排序,主要使用sort_values()和sort_index()。
DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, kind=‘quicksort’, na_position=‘last’)
by:列名,按照某列排序
axis:按照index排序还是按照column排序
ascending:是否升序排列
kind:选择 排序算法{‘quicksort’, ‘mergesort’, ‘heapsort’}, 默认是‘quicksort’,也就是快排
na_position:nan排列的位置,是前还是后{‘first’, ‘last’}, 默认是‘last’
sort_index() 的参数和上面差不多。

实例:

import numpy as np
import pandas as pd
from pandas import Series, DataFrame

np.random.seed(666)

s1 = Series(np.random.randn(10))
print(s1)
'''
0    0.824188
1    0.479966
2    1.173468
3    0.909048
4   -0.571721
5   -0.109497
6    0.019028
7   -0.943761
8    0.640573
9   -0.786443
dtype: float64
'''

#  为series排序的两种方式,1 用 value 来排序, 2 用 index 来排序
s2 = s1.sort_values() # 按照 value 来排序
print(s2)
'''
7   -0.943761
9   -0.786443
4   -0.571721
5   -0.109497
6    0.019028
1    0.479966
8    0.640573
0    0.824188
3    0.909048
2    1.173468
dtype: float64
'''

# axis 设置轴 的方向, ascending 设置升降序
s2 = s1.sort_values(axis = 0, ascending=False)
print(s2)
'''
2    1.173468
3    0.909048
0    0.824188
8    0.640573
1    0.479966
6    0.019028
5   -0.109497
4   -0.571721
9   -0.786443
7   -0.943761
dtype: float64
'''

# 通过 对 index 进行排序
s2.sort_index()
print(s2)
'''
2    1.173468
3    0.909048
0    0.824188
8    0.640573
1    0.479966
6    0.019028
5   -0.109497
4   -0.571721
9   -0.786443
7   -0.943761
dtype: float64
'''

# 对于 dataframe 的排序

df1 = DataFrame(np.random.randn(40).reshape(8, 5), columns=['a', 'b', 'c', 'd', 'e'])
print(df1)
'''
          a         b         c         d         e
0  0.608870 -0.931012  0.978222 -0.736918 -0.298733
1 -0.460587 -1.088793 -0.575771 -1.682901  0.229185
2 -1.756625  0.844633  0.277220  0.852902  0.194600
3  1.310638  1.543844 -0.529048 -0.656472 -0.201506
4 -0.700616  0.687138 -0.026076 -0.829758  0.296554
5 -0.312680 -0.611301 -0.821752  0.897123  0.136079
6 -0.258655  1.110766 -0.188424 -0.041489 -0.984792
7 -1.352282  0.194324  0.267239 -0.426474  1.447735
'''

# 按照 columns 进行排序, 这种做法 和 对 series的 操作 差不多
print(df1['a'].sort_values())
'''
2   -1.756625
7   -1.352282
4   -0.700616
1   -0.460587
5   -0.312680
6   -0.258655
0    0.608870
3    1.310638
Name: a, dtype: float64
'''

# 将 dataframe 按照 其中 某个列进行排序, 参数ascending来控制 升降序
print(df1.sort_values('a'))
'''
          a         b         c         d         e
2 -1.756625  0.844633  0.277220  0.852902  0.194600
7 -1.352282  0.194324  0.267239 -0.426474  1.447735
4 -0.700616  0.687138 -0.026076 -0.829758  0.296554
1 -0.460587 -1.088793 -0.575771 -1.682901  0.229185
5 -0.312680 -0.611301 -0.821752  0.897123  0.136079
6 -0.258655  1.110766 -0.188424 -0.041489 -0.984792
0  0.608870 -0.931012  0.978222 -0.736918 -0.298733
3  1.310638  1.543844 -0.529048 -0.656472 -0.201506
'''

df2 = df1.sort_values('a')
print(df2)
'''
          a         b         c         d         e
2 -1.756625  0.844633  0.277220  0.852902  0.194600
7 -1.352282  0.194324  0.267239 -0.426474  1.447735
4 -0.700616  0.687138 -0.026076 -0.829758  0.296554
1 -0.460587 -1.088793 -0.575771 -1.682901  0.229185
5 -0.312680 -0.611301 -0.821752  0.897123  0.136079
6 -0.258655  1.110766 -0.188424 -0.041489 -0.984792
0  0.608870 -0.931012  0.978222 -0.736918 -0.298733
3  1.310638  1.543844 -0.529048 -0.656472 -0.201506
'''

# 对 df2 的 索引 进行排序, 又回到之前的原本的 df2
print(df2.sort_index())
'''
          a         b         c         d         e
0  0.608870 -0.931012  0.978222 -0.736918 -0.298733
1 -0.460587 -1.088793 -0.575771 -1.682901  0.229185
2 -1.756625  0.844633  0.277220  0.852902  0.194600
3  1.310638  1.543844 -0.529048 -0.656472 -0.201506
4 -0.700616  0.687138 -0.026076 -0.829758  0.296554
5 -0.312680 -0.611301 -0.821752  0.897123  0.136079
6 -0.258655  1.110766 -0.188424 -0.041489 -0.984792
7 -1.352282  0.194324  0.267239 -0.426474  1.447735
'''

原文地址:https://www.cnblogs.com/wenqiangit/p/11252731.html

时间: 2024-10-09 20:56:13

pandas-06 Series和Dataframe的排序操作的相关文章

Pandas之Series和Dataframe

# Series 数据结构 # Series 是带有标签的一维数组,可以保存任何数据类型(整数,字符串,浮点数,Python对象等),轴标签统称为索引 import numpy as np import pandas as pd # 导入numpy.pandas模块 s = pd.Series(np.random.rand(5)) print(s) print(type(s)) # 查看数据.数据类型 print(s.index,type(s.index)) print(s.values,typ

pandas 的数据结构(Series, DataFrame)

Pandas 讲解 Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的. Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具. pandas提供了大量能使我们快速便捷地处理数据的函数和方法.你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一. Series:一维数组,与Numpy中的一维array类似. 二者与Python基本的数据结构List也

利用 Python 进行数据分析(八)pandas 基本操作(Series 和 DataFrame)

一.reindex() 方法:重新索引 针对 Series   重新索引指的是根据index参数重新进行排序. 如果传入的索引值在数据里不存在,则不会报错,而是添加缺失值的新行. 不想用缺失值,可以用 fill_value 参数指定填充值. 例如: fill_value 会让所有的缺失值都填充为同一个值,如果不想这样而是用相邻的元素(左或者右)的值填充,则可以用 method 参数,可选的参数值为 ffill 和 bfill,分别为用前值填充和用后值填充: 针对 DataFrame   重新索引

Pandas初体验之数据结构——Series和DataFrame

Pandas是为了解决数据分析任务而创建的,纳入了大量的库和标准数据模型,提供了高效地操作大型数据集所需的工具. 对于Pandas包,在Python中常见的导入方法如下: from pandas import Series,DataFrame import pandas as pd 首先,我们需要对于Series和DataFrame有个基本的了解: Series:一维数组,类似于Python中的基本数据结构list,区别是Series只允许存储相同的数据类型,这样可以更有效的使用内存,提高运算效

利用 Python 进行数据分析(七)- pandas 简单介绍(Series和DataFrame)

一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目的是为了数据分析.它提供了大量高级的数据结构和对数据处理的方法. pandas 有两个主要的数据结构:Series 和 DataFrame. 二.Series Series 是一个一维数组对象 ,类似于 NumPy 的一维 array.它除了包含一组数据还包含一组索引,所以可以把它理解为一组带索引的数组. 将 Python 数组转换成 Series 对象: 将 Python 字典转换成 Serie

Pandas基本功能之算术运算、排序和排名

算术运算和数据对齐 Series和DataFrame中行运算和列运算有种特征叫做广播 在将对象相加时,如果存在不同的索引对,则结果的索引就是该索引对的并集.自动的数据对齐操作在不重叠的索引处引入了NA值,NA值在算术运算中过程中传播. import pandas as pd from pandas import Series import numpy as np s1 = Series([7.3,-2.5,3.4,1.5],index=['a','c','d','e']) s2 = Series

Pandas学习笔记,DataFrame的排序问题

数据来源见前边的几篇随笔 对其中的一列排序 data.high.sort_values(ascending=False) data.high.sort_values(ascending=True) data['high'].sort_values(ascending=False) data['high'].sort_values(ascending=True) p = data.high.sort_values() print(p) date 2015-01-05 11.39 2015-01-0

Python array,list,dataframe索引切片操作 2016年07月19日——智浪文档

array,list,dataframe索引切片操作 2016年07月19日——智浪文档 list,一维,二维array,datafrme,loc.iloc.ix的简单探讨 Numpy数组的索引和切片介绍: 从最基础的list索引开始讲起,我们先上一段代码和结果: a = [0,1,2,3,4,5,6,7,8,9] a[:5:-1] #step < 0,所以start = 9 a[0:5:-1] #指定了start = 0 a[1::-1] #step < 0,所以stop = 0 输出: [

【sparkSQL】DataFrame的常用操作

scala> import org.apache.spark.sql.SparkSession import org.apache.spark.sql.SparkSession scala> val spark=SparkSession.builder().getOrCreate() spark: org.apache.spark.sql.SparkSession = [email protected] //使支持RDDs转换为DataFrames及后续sql操作 scala> impo