5.2.6排序和排名
import pandas as pd
import numpy as np
obj=pd.Series(np.arange(4),index=["d","a","b","c"])
print(obj.sort_index())#sort_index对标签进行重排
obj2=pd.DataFrame(np.arange(8).reshape(2,4),index=["three","one"],columns=["d","a","b","c"])
print(obj2.sort_index())#默认对index进行重排
print(obj2.sort_index(axis="columns"))#指定轴为columns
print(obj2.sort_index(axis="columns",ascending=False))#默认升序,可降序
obj3=pd.Series([4,7,np.nan,-3,2])
print(obj3.sort_values())#sort_values对值进行重排,np.nan一律在末尾
print(obj3.sort_values(na_position="first"))#把np.nan排到最前面
frame=pd.DataFrame({"b":[4,7,-3,2],"a":[0,1,0,1]})
print(frame.sort_values("b"))#单独对b排列
obj4=pd.Series([7,-5,7,4,2,0,4])
print(obj4.rank())#从小到大排,相同的数用平均排名
print(obj4.rank(method="first"))#从小到大,相数据按出现顺序排列
print(obj4.rank(ascending=False))#降序,从大到小排,相同的数用平均排名
frame2=pd.DataFrame({"b":[4,7,-3,2],"a":[0,1,0,1],"c":[-2,5,8,-2.5]})
print(frame2.rank(axis="columns"))
5.2.7带有重复标签的索引值(以DataFrame为例)
frame3=pd.DataFrame(np.random.standard_normal(15).reshape(5,3),index=["a","a","b","b","c"])
print(frame3.loc["b"])#重复标签输出DataFrame
print(frame3.loc["c"])#单标签输出Series