df = pd.DataFrame(
data=[
['zs', 18, 1],
['ls', 17, 2],
['ww', 19, 2],
['zl', 19, 1]
],
columns=['name', 'age', 'group'],
index=[2, 1, 4, 5]
)
print('df:\n', df)
df.sort_index(
ascending=True, # ascending=True --升序排序(默认); ascending=False --降序排序
inplace=True, # 如果为True,则直接删除,对原df进行操作; 如果为False(默认),那么返回一个结果,不会对原df操作!
axis=0, # axis=0 --根据行索引排序(默认); axis=1 --根据列索引排序
key=None # (默认)None,否则在排序之前对索引值应用键函数。
)
print('df:\n', df)
df.sort_index(
ascending=True, # ascending=True --升序排序(默认); ascending=False --降序排序
inplace=True, # 如果为True,则直接删除,对原df进行操作; 如果为False(默认),那么返回一个结果,不会对原df操作!
axis=1, # axis=0 --根据行索引排序(默认); axis=1 --根据列索引排序
)
print('df:\n', df)
>>> df = pd.DataFrame({"a": [1, 2, 3, 4]}, index=['A', 'b', 'C', 'd'])
>>> df.sort_index()
a
A 1
C 3
b 2
d 4
>>> df.sort_index(key=lambda x: x.str.lower())
a
A 1
b 2
C 3
d 4
"""
sort_values
和 sort_index
参数相似,区别是多出一个by
参数指定用来排序的行 或 列,by的值可以是字符串或数组。
根据age
排序
df.sort_values(
by='age',
ascending=True,
inplace=True
)
print('df:\n', df)
先根据age
排序,age
相同的数据再根据group
排序
df.sort_values(
by=['age', 'group'],
ascending=True,
inplace=True
)
print('df:\n', df)
先根据age
升序排序,age
相同的数据再根据group
降序排序
df.sort_values(
by=['age', 'group'],
ascending=[True, False],
inplace=True
)
print('df:\n', df)