我得到了一个 Pandas 数据框,其中两列对应于人名。列是相关的,相同的名称表示同一个人。我想分配类别代码,使其对整个“名称”空间有效。
例如我的数据框是
df = pd.DataFrame({"P1":["a","b","c","a"], "P2":["b","c","d","c"]})
>>> df
P1 P2
0 a b
1 b c
2 c d
3 a c
我希望它被相应的类别代码替换,这样
>>> df
P1 P2
0 1 2
1 2 3
2 3 4
3 1 3
类别实际上是从连接数组 ["a","b","c","d"] 派生的,并分别应用于各个列。我怎样才能做到这一点?
最佳答案
你可以做
In [465]: pd.DataFrame((pd.factorize(df.values.ravel())[0]+1).reshape(df.shape),
columns=df.columns)
Out[465]:
P1 P2
0 1 2
1 2 3
2 3 4
3 1 3
关于python-2.7 - 来自两列的 Pandas 数据框类别代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48321356/