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
'''
pandas-06 Series和Dataframe的排序操作的更多相关文章
- Python之Pandas中Series、DataFrame
Python之Pandas中Series.DataFrame实践 1. pandas的数据结构Series 1.1 Series是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一 ...
- Python之Pandas中Series、DataFrame实践
Python之Pandas中Series.DataFrame实践 1. pandas的数据结构Series 1.1 Series是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一 ...
- 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍
一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目的是为了数据分析.它提供了大量高级的数据结构和对数据处理的方法. pandas 有两个主要的数据结构 ...
- 利用Python进行数据分析(8) pandas基础: Series和DataFrame的基本操作
一.reindex() 方法:重新索引 针对 Series 重新索引指的是根据index参数重新进行排序. 如果传入的索引值在数据里不存在,则不会报错,而是添加缺失值的新行. 不想用缺失值,可以用 ...
- Pandas中Series和DataFrame的索引
在对Series对象和DataFrame对象进行索引的时候要明确这么一个概念:是使用下标进行索引,还是使用关键字进行索引.比如list进行索引的时候使用的是下标,而dict索引的时候使用的是关键字. ...
- pandas基础: Series和DataFrame的简单介绍
一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目的是为了数据分析.它提供了大量高级的数据结构和对数据处理的方法. pandas 有两个主要的数据结构 ...
- pandas学习series和dataframe基础
PANDAS 的使用 一.什么是pandas? 1.python Data Analysis Library 或pandas 是基于numpy的一种工具,该工具是为了解决数据分析人物而创建的. 2.p ...
- [Python] Pandas 中 Series 和 DataFrame 的用法笔记
目录 1. Series对象 自定义元素的行标签 使用Series对象定义基于字典创建数据结构 2. DataFrame对象 自定义行标签和列标签 使用DataFrame对象可以基于字典创建数据结构 ...
- Python数据分析-Pandas(Series与DataFrame)
Pandas介绍: pandas是一个强大的Python数据分析的工具包,是基于NumPy构建的. Pandas的主要功能: 1)具备对其功能的数据结构DataFrame.Series 2)集成时间序 ...
随机推荐
- 洛谷 P1969 积木大赛(NOIP2013)
题目描述春春幼儿园举办了一年一度的“积木大赛”.今年比赛的内容是搭建一座宽度为n的大厦,大厦可以看成由n块宽度为1的积木组成,第i块积木的最终高度需要是hi. 在搭建开始之前,没有任何积木(可以看成n ...
- 【Python】解析Python中的迭代器
目录结构: contents structure [-] Iterator VS Iterable Itertools 模块 生成器(Generator) 在开始文章之前,先贴上一张Iterable. ...
- 运维笔记--Ubuntu离线安装jdk1.8(JDK8)Java环境
Ubuntu离线环境安装jdk1.8 系统版本:Ubuntu16.04 其他Ubuntu版本安装类似 Jdk版本:8 1. 下载相应离线软件包 Jdk oracle官方下载地址:https://www ...
- opencv马赛克python实现
最近要实现opencv视频打马赛克,在网上找了一下基本是C++的实现,好在原理一样,下面给出python实现. 原理和注意点,我都写在注释里了 import cv2 ##马赛克 def do_mosa ...
- 泡泡一分钟:Context-Aware Modelling for Augmented Reality Display Behaviour
张宁 Context-Aware Modelling for Augmented Reality Display Behaviour链接:https://pan.baidu.com/s/1RpX6kt ...
- 一份ChatBot开源工程介绍(H5 + WX + KOA)
vue-mpvue-ChatRobot https://github.com/fanqingsong/vue-mpvue-ChatRobot 前端 : Vue + Mpvue(支持移动端与小程序) ; ...
- win10更改pip源
摘自:https://blog.csdn.net/qq_31443999/article/details/88750833 win10安装TensorFlow卡崩更改为国内清华大学镜像源,即可. 具体 ...
- Vmvare v12下搭建Ubuntu操作系统-18.04-desktop-amd64.iso镜像环境
1.选择[典型],点击下一步. 2.找到ubuntu镜像文件所在位置,如图所示: 3.配置用户信息 4.设置安装位置 5.磁盘尽量大一些,笔者设置40g 6.自定义修改硬件信息 7.内存建 ...
- Web API之Web Components
本文参考<你的前端框架要被web组件替代了>. 于2011年面世的Web Components是一套功能组件,让开发者可以使用 HTML.CSS 和 JavaScript 创建可复用的组件 ...
- 分割nginx日志
#!/bin/bash #此脚本用于自动分割Nginx的日志,包括access.log和error.log #每天00:00执行此脚本 将前一天的access.log重命名为access-xxxx-x ...