我从数据帧的两列创建了唯一的数字代码。现在,我想找到数字代码到原始值之间的对应映射。你知道吗
例如
df = pd.DataFrame({"P1":["a","b","c","a"],
"P2":["b","c","d","c"],
"A":[3,4,5,6]}, index=[2,2,3,3])
print (df)
A P1 P2
2 3 a b
2 4 b c
3 5 c d
3 6 a c
cols = ['P1','P2']
df[cols] = (pd.factorize(df[cols].values.ravel())[0]+1).reshape(-1, len(cols))
print (df)
A P1 P2
2 3 1 2
2 4 2 3
3 5 3 4
3 6 1 3
现在,我想把地图作为一个词汇
a => 1
b => 2
c => 3
d => 4
我怎样才能得到它?你知道吗
可以使用索引将第一个数组从
factorize
、zip
展开并转换为dict
:细节:
建议:首先不要做所有疯狂的事情来转换数据帧。创建映射,然后应用它:
相关问题 更多 >
编程相关推荐