我可以定义自己的排序顺序并仍然使用 Python 排序函数吗?例如,假设我想要的排序顺序是:
list1 = ['Stella', 'Bob', 'Joe', 'Betty']
Run Code Online (Sandbox Code Playgroud)
我希望做类似的事情:
list2 = ['Joe', 'Stella']
sorted(list2, key=list1)
Run Code Online (Sandbox Code Playgroud)
并得到:
['Stella', 'Joe']
Run Code Online (Sandbox Code Playgroud)
其中排序顺序保留在 中的自定义顺序内list1。我可以通过交换数值来分多个步骤来完成此操作,但我认为可能有一种方法可以与上面类似。
如果有更好的方法的话,我不执着于使用字典作为查找表。我创建了一个简单的 Python 字典 (lkup),用作带有 df.letter 输入的查找表。我想将字典中的映射值输出到新列 df.newletter 中。下面的代码片段一直工作到最后一行中的实际分配。
我尝试过仅使用数字索引,使用键、值、dict.get() 和许多其他东西。我很接近吗?
import pandas as pd
df = pd.DataFrame()
df['letter'] = ['a', 'a', 'c', 'd', 'd']
lkup = {'a':'b', 'b':'c', 'c':'d', 'd':'e', 'e':'f'}
for key in lkup:
for i in range(0,4):
if df['letter'][i] in key:
df['newletter'][i] = [insert_dictionary_value]
Run Code Online (Sandbox Code Playgroud)
我想在 df.newletter 列中查看映射的字典值。