熊猫基于列表对行进行自定义排序

给定一个数据框和一个列表,以及一个数据框的列的值。 (列表相等,只要数据框的行和每个值恰好显示为一) 如何根据列表中的顺序对数据框中的行进行排序?

import pandas as pd
df = pd.DataFrame({'user': ['Bob', 'Jane', 'Alice'], 
                   'income': [40000, 50000, 42000]})
z = ["Jane", "Alice", "Bob"]