Appearance
数据排序
Pandas 提供了强大的数据排序功能。
按列排序
python
import pandas as pd
df = pd.DataFrame({
'姓名': ['张三', '李四', '王五', '赵六'],
'年龄': [25, 30, 25, 35],
'分数': [85, 90, 78, 92]
})
# 按单列升序排序
df_sorted = df.sort_values('年龄')
print(df_sorted)
# 按单列降序排序
df_sorted = df.sort_values('年龄', ascending=False)
print(df_sorted)
# 按多列排序
df_sorted = df.sort_values(['年龄', '分数'], ascending=[True, False])
print(df_sorted)按索引排序
python
df = pd.DataFrame({
'A': [1, 2, 3],
'B': [4, 5, 6]
}, index=['c', 'a', 'b'])
# 按索引升序排序
df_sorted = df.sort_index()
print(df_sorted)
# 按索引降序排序
df_sorted = df.sort_index(ascending=False)
print(df_sorted)Series 排序
python
s = pd.Series([3, 1, 4, 1, 5], index=['c', 'a', 'd', 'b', 'e'])
# 按值排序
s_sorted = s.sort_values()
print(s_sorted)
# 按索引排序
s_sorted = s.sort_index()
print(s_sorted)排序选项
python
df = pd.DataFrame({
'A': [3, 1, None, 2],
'B': ['c', 'a', 'b', 'd']
})
# 空值放在最后
df_sorted = df.sort_values('A', na_position='last')
print(df_sorted)
# 空值放在最前
df_sorted = df.sort_values('A', na_position='first')
print(df_sorted)
# 原地排序
df.sort_values('A', inplace=True)
print(df)多级索引排序
python
df = pd.DataFrame(
{'值': [1, 2, 3, 4]},
index=pd.MultiIndex.from_tuples([
('B', 2), ('A', 1), ('B', 1), ('A', 2)
], names=['类别', '编号'])
)
# 按级别排序
df_sorted = df.sort_index(level='类别')
print(df_sorted)
# 按多个级别排序
df_sorted = df.sort_index(level=['类别', '编号'])
print(df_sorted)排名
python
df = pd.DataFrame({
'分数': [85, 92, 78, 92, 85]
})
# 默认排名(相同值取平均排名)
df['排名'] = df['分数'].rank()
print(df)
# 最小排名
df['排名_最小'] = df['分数'].rank(method='min')
print(df)
# 最大排名
df['排名_最大'] = df['分数'].rank(method='max')
print(df)
# 密集排名
df['排名_密集'] = df['分数'].rank(method='dense')
print(df)排序是数据分析中常用的操作,合理使用排序可以更好地理解数据分布。