# 排序和排位-pandas
# 导入包
import pandas as pd
import numpy as np
print("*" * 20, " 我是分割线", "*" * 20)
# 创建Series对象
ser = pd.Series([4,2,7,1,8,11,7] ,index=['d','f','z','g','q','m','c'])
# 根据index排序
# ser1 = ser.sort_index(ascending=False) # 降序排列
ser1 = ser.sort_index(ascending=True)
print(ser1)
# 根据value排序
print("*" * 20, " 我是分割线", "*" * 20)
ser2 = ser.sort_values(ascending=True)
print(ser2)
## DataFrame排序
print("*" * 20, " 我是分割线", "*" * 20)
# 构建DataFrame
df = pd.DataFrame(np.arange(12).reshape((4,3)), index=['g','f','b','z'], columns=['bb','aa','cc'])
print(df)
# 按照index排序
print("*" * 20, " 我是分割线", "*" * 20)
df1 = df.sort_index(ascending=True)
print(df1)
# 按照列标签排序
print("*" * 20, " 我是分割线", "*" * 20)
df2 = df.sort_index(ascending=True, axis=1)
print(df2)
# 按照value进行排序
print("*" * 20, " 我是分割线", "*" * 20)
df3 = df.sort_values(by=['aa','cc'], ascending=False)
print(df3)
## Series排位操作(判断值排在第几位)
print("*" * 20, " 我是分割线", "*" * 20)
ser3 = pd.Series([3,4,5,11,22,1])
print(ser3.rank(ascending=False)) # ascending 指定降序或者升序
## DataFrame排位操作
print("*" * 20, " 我是分割线", "*" * 20)
df4 = df.rank(axis=1, ascending=False) # axis=1 按照行方向排位, axis=0 按照列方向排位
print(df4)
本文暂时没有评论,来添加一个吧(●'◡'●)