专业的编程技术博客社区

网站首页 > 博客文章 正文

排序和排位-pandas(pandas的排序)

baijin 2024-08-14 11:53:35 博客文章 8 ℃ 0 评论

# 排序和排位-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)

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表