【问题标题】:How to sort column names into bins in Pandas Dataframe (Categorical Data)如何将列名排序到 Pandas Dataframe(分类数据)中的 bin 中
【发布时间】:2019-12-21 18:35:46
【问题描述】:

我有一个 Pandas 数据框,其中包含 173 列不同大学专业(例如 category_ACCOUNTING),列下方每行的值 1 或 0 表示学生是否选择该专业。我想将这 173 列分为两列 - STEM 和非 STEM 专业。如何将分类数据分类到两个分类箱中?

尝试使用 pandas.cut() 无效

picture of onehotencoded dataframe

edit - I now want to put either '1' or '0' in the STEM and nonSTEM columnsc(see picture)

【问题讨论】:

  • 您要订购包含 STEM 和非 STEM 的列吗?还是你想根据一些映射来创建那个列?
  • @Carsten 我想为 STEM 学位和非 STEM 学位创建一个列,并将每个学位映射到其中一个列:)
  • @Carsten 即物理在 STEM 列中的值为“1”,在非 STEM 列中为“0”

标签: python pandas scikit-learn jupyter-notebook sklearn-pandas


【解决方案1】:

您可以使用创建映射的字典:

mapping_dict = {'physics': 'STEM'}
df['STEM'] = df['degree'].map(mapping_dict)

I got an error because the column name wasn't accepted

【讨论】:

  • 谢谢 - 因为每一列都是 'category_ACCOUNTING' 的形式,它应该看起来像 mapping_dict = {'category_ENGINEERING: 'STEM'} df['STEM'] = df['category'].map (mapping_dict) ?
  • 我需要一点时间才能进入每个专业(因为有 173 个),但我会在完成后回复您。字典是否创建两个新列?理想情况下,我想要两个新专栏,因为我正在研究 STEM 和非 STEM 专业和性别之间的关系,所以我想以 STEM/nonSTEM 专栏为条件:) @Carsten
  • 由于列名而出现错误 - 它被称为“类别”/“类别_”。我需要选择所有以'category_'开头的列
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-01-06
  • 1970-01-01
  • 2017-01-21
  • 1970-01-01
  • 2022-01-21
  • 2022-11-17
相关资源
最近更新 更多