【问题标题】:Creating dummy variables for ordinals in pandas dataframe在 pandas 数据框中为序数创建虚拟变量
【发布时间】:2021-04-13 21:33:19
【问题描述】:

我正在尝试在 python 中以 pandas 数据框格式创建虚拟变量。我有一个名为“Weight Group”的变量,我想像这样转换变量:

改造前:

    Weight_Group
0      1
1      5
2      4
3      2
4      2
5      3
6      1

改造后:

    WD_1  WD_2  WD_3  WD_4  WD_5
0      1    0     0     0     0
1      1    1     1     1     1
2      1    1     1     1     0 
3      1    1     0     0     0
4      1    1     0     0     0
5      1    1     1     0     0
6      1    0     0     0     0

我知道 pandas 具有创建虚拟变量的 get_dummies() 函数,但它没有提供我想要的功能,其中权重组 3 中的某个人在 WG_1、WG_2 和 WG_3 列中有一个。我有很多数据点,所以快速的方法会很棒。如果有人对我如何实现这一点有任何想法,我将不胜感激!

【问题讨论】:

    标签: python pandas dataframe dummy-variable


    【解决方案1】:

    您可以致电pd.get_dummies(),然后将您的0 提示替换为NaN 并使用bfill()(加上一些额外的显示清理):

    pd.get_dummies(df['Weight_Group'], prefix='WD').replace(0,np.nan).bfill(axis=1).fillna(0).astype(int)
    

    产量:

       WD_1  WD_2  WD_3  WD_4  WD_5
    0     1     0     0     0     0
    1     1     1     1     1     1
    2     1     1     1     1     0
    3     1     1     0     0     0
    4     1     1     0     0     0
    5     1     1     1     0     0
    6     1     0     0     0     0
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-20
      • 2021-07-16
      • 1970-01-01
      • 2019-05-05
      • 1970-01-01
      • 2018-10-06
      相关资源
      最近更新 更多