python-2.7 - 来自两列的 Pandas 数据框类别代码

标签 python-2.7 pandas numpy categorical-data

我得到了一个 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/

相关文章:

python - 使用 python 的 csv 文件中的列中的唯一元素

Python 将文本写入 .tar.gz

python - 将列表插入满足列条件的单元格

Python 元类与对象实例化一起使用

python-2.7 - 带分类轴的 3D 图 [Python/Matplotlib]

python - 如何处理 pandas 条形图中烦人的间隙

python - 如何重新采样具有应用于每列的不同函数的数据框?

python - 矩阵维度在反向传播中不匹配

python - 替换 NumPy 数组的某些给定索引的最有效方法是什么?

python - 将训练和测试数据保存在文件中