pandas 对Series和Dataframe排序算法
Pandas 提供很方便的一个数据类型— DataFrame,DataFrame 数据类型转换有两种:
- 1,利用Pandas 的 *read_ **函数读取;
- 2,利用pd.DataFrame 进行转换;
DataFrame数据类型的一个显著特点:把数据以直观的类似于表格形式展现出来,简单明了:
处理上面这种数据时通常会用到排序功能,Pandas 也提供了两种很方便的排序函数。
<font size=4 color='green'>1,针对于某一列或多列数据进行排序,利用 sort_values() 函数,该函数只适用于 DataFrame</font>
首先需要构造一个样本:
import numpy as np
#用numpy 来构造一个 DataFrame
df = pd.DataFrame(np.random.randn(5,5),index =np.arange(5),columns=list('abcde'))
df
利用sort_values() 函数进行排序
# sort_value 有两个参数
# 第一个 by 指的是排序参照列,可单列也可a多列;
# 第二个 ascending 指的是是否以升序方式,默认维True
# 单列排序
df.sort_values(by = ['a'],ascending = False)
# 多列排序;
df.sort_values(by = ['a','b'],ascending =False)
<font size=4 color='green'>2,sort_index()函数能够以列为基准,也能以索引(行)为基准,适用数据类型: DataFrame 和 Series</font>
Pandas 读取之后的数据类型就是 DataFrame ,而 Series 指的是 DataFrame 中某一列数据类型 ,sort_index() 具体使用方法如下:
# 利用sort_index(0,ascending = False)对df进行排序;
# 第一个参数,0代表以index维排序基准,1代表以列为基准;
# 以列为基准
df.sort_index(0,ascending = False)
# 以列为基准进行排序
df.sort_index(1,ascending =False)
利用 sort_index() 对 Series数据类型进行排序
#创建一个Series,以索引为基准排序
df1 =pd.Series([3,6,7,8],index = ['a','c','d','e'])
df1.sort_index()
<font size=4 color='green'>3,to_dict()可以直接把数据类型转化为字典,适用数据类型: DataFrame 和 Series;</font>
3.1,to_dict() 应用于 DataFrame
# 把DataFrame数据类型中的两列转化成字典
# 将df中的 以 a列为 key b列为 value 建立字典;
df.set_index('a')['b'].to_dict()
3.2,to_dict() 应用于 Series
#创建一个Series,以索引为基准排序
df1 =pd.Series([3,6,7,8],index = ['a','c','d','e'])
# to_dict() 适用于 Series 是以索引为key,以 元素值为 value
df1.to_dict()