文章目录
Pandas 数据排序
给大家分享下在 Pandas 中排序的几种常用方法,主要包括 sort_index 和 sort_values 。
按索引排序
文中主要使用了 pandas 和 numpy ,首先导入 Python 库,如下:
import pandas as pd
import numpy as np
data = {
'brand':['Python 数 据 之 道 ',' 价 值 前 瞻 ',' 菜 鸟 数 据 之 道 ','Python','Java'],
'B':[4,6,8,12,10],
'A':[10,2,5,20,16],
'D':[6,18,14,6,12],
'years':[4,1,1,30,30],
'C':[8,12,18,8,2],
}
index = [9,3,4,5,2]
df = pd.DataFrame(data=data,index=index)
df
按行索引排序
sort_index() 是 pandas 中按索引排序的函数,默认情况下,sort_index 是按行索引来排序。
df.sort_index()
#sort_index() 是 pandas 中按索引排序的函数,
默认情况下,sort_index 是按行索引来排序
通过设置参数 ascending 可以设置升序或降序排列,默认情况下是 ascending=True ,为升序排列。
设置 ascending=False 时,为降序排列,如下:
df.sort_index(ascending=False)
按列的名称排序
通过设置参数 axis=1 可实现按列的名称排序,如下:
df.sort_index(axis=1)
同样的,可以设置参数 ascending 的值,如下:
df.sort_values('B',ascending=False)
按数值排序
sort_values() 是 pandas 中按数值排序的函数。
按单个列的值排序
sort_values() 中设置单个列的列名称,可以对单个列进行排序,通过设置参数 ascending 可以设置升序或
降序排列,如下:
df.sort_values('B')
按多个列的值排序
同时,sort_values() 可以对多个列进行不同的排序,通过设置列明和排序方式组合来实现,如下:
df.sort_values('B',ascending=False)
设置参数 ascending ,years 列为升序,B 列为降序,如下:
df.sort_values(['years','B'],ascending=[True,False])
inplace
inplace 是 pandas 中常见的一个参数。
inplace = True:不创建新的对象,直接对原始对象进行修改;默认是 False,即创建新的对象进行修改,原
对象不变,和深复制和浅复制有些类似。
df.sort_values('B',inplace=True)
df
Pandas 中将列(column)排序的方法
import pandas as pd
import akshare as ak
data = {
'brand':['Python 数 据 之 道 ',' 价 值 前 瞻 ',' 菜 鸟 数 据 之 道 ','Python','Java'],
'B':[4,6,8,12,10],
'A':[10,2,5,20,16],
'D':[6,18,14,6,12],
'years':[4,1,1,30,30],
'C':[8,12,18,8,2],
}
df = pd.DataFrame(data=data)
df
将列的名称按需要进行手动排序
然后运行代码如下:
df[['brand','A','B','C','D','years']]
df.loc[:,['brand','A','B','C','D','years']]
#使用 .loc 方法,通过列的名称来进行排序