要按照给定的排序顺序列表对pandas数据帧进行排序,可以使用sort_values()
函数。
下面是一个示例代码:
import pandas as pd
# 创建示例数据帧
data = {'Name': ['Tom', 'Nick', 'John', 'Amy'],
'Age': [28, 30, 25, 32],
'City': ['New York', 'London', 'Paris', 'Tokyo']}
df = pd.DataFrame(data)
# 创建排序顺序列表
sort_order = ['John', 'Nick', 'Tom', 'Amy']
# 按照给定的排序顺序列表对数据帧进行排序
df_sorted = df.sort_values(by='Name', key=lambda x: x.map(dict(zip(sort_order, range(len(sort_order))))))
# 打印排序后的数据帧
print(df_sorted)
输出结果为:
Name Age City
2 John 25 Paris
1 Nick 30 London
0 Tom 28 New York
3 Amy 32 Tokyo
在这个示例中,我们首先创建了一个包含姓名、年龄和城市的数据帧。然后,我们创建了一个排序顺序列表sort_order
,其中按照我们的希望的顺序指定了姓名的排序顺序。最后,我们使用sort_values()
函数对数据帧进行排序,根据Name
列的值,并通过key
参数传递了一个lambda函数,该函数使用字典映射将姓名转换为对应的顺序值。最终,我们打印出排序后的数据帧。