我已使用此代码分解了我以前的数据框
df['name'], mapping = df['name'].factorize()
现在,我正在尝试使用变量映射为新数据框获取相同的因式分解值
映射
Index(['Ranny','Bob','Timmy','Lisa'],
dtype='object')
我的新数据框
╔════════════════╗
║ Name Apples ║
╠════════════════╣
║ Lisa 5 ║
║ Timmy 3 ║
║ Lisa 2 ║
║ Bob 1 ║
╚════════════════╝
将列名映射到列表后我想要的数据框
╔════════════════╗
║ Name Apples ║
╠════════════════╣
║ 3 5 ║
║ 2 3 ║
║ 3 2 ║
║ 1 1 ║
╚════════════════╝
我不确定该怎么做。我尝试进行循环,但是当数据集很大时会花费太多时间。有没有一种有效的方法可以做到这一点?
答案 0 :(得分:3)
如果我理解正确,则可以在此处使用pd.Index.get_Indexer
:
df2['Name'] = mapping.get_indexer(df2['Name'])
print(df)
Name Apples
0 3 5
1 2 3
2 3 2
3 1 1