有没有一种简单的方法可以从 pandas 数据框中获取分类列的映射?

问题描述 投票:0回答:0

对于一个项目,我得到了 SPSS .sav 文件中的数据,这些数据之前是使用 R 处理的。我现在尝试“翻译”成 Python,并一直在使用 pandas,更具体地说,非常方便

read_spss(...)
-功能。

原始数据表示一个图,其中每行包含有关节点的信息,某些列包含有关每个节点的出边的信息。有一个与每个行/节点关联的附加标识符,由于某种原因没有明确给出为列。但是,当使用

read_spss(convert_categoricals=True)
保留分类列时,我可以在数据框的外键列中看到这些标识符。

我的问题是,似乎有三种不同的方式来表示这些分类列中的数据:

  1. 使用
    read_spss(convert_categoricals=True)
    ,我获取每行的类别名称。
  2. 使用
    df["categorical_column"].cat.codes
    ,我获取每行的类别代码。
  3. 使用
    read_spss(convert_categoricals=False)
    ,我获得每行的 ID,这与使用第二个选项获得的代码完全不同。

我想要的是从使用第三个选项获得的 ID(因为它们用作数据框中其他行的外键)到使用第一个选项获得的类别名称的映射。然而,我只能想到看起来相当不方便和昂贵的方法(即导入数据框两次,创建一个结合行 ID 和行类别的新数据框,然后从中创建一个 python 字典,重复该过程每个外键列)。

有更简单的方法吗?

python r pandas spss categorical-data
© www.soinside.com 2019 - 2024. All rights reserved.