为 pandas 数据框中的序数创建虚拟变量
Creating dummy variables for ordinals in pandas dataframe
我正在尝试以 pandas 数据帧格式在 python 中创建虚拟变量。我有一个名为“重量组”的变量,我想像这样转换变量:
改造前:
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 列。我有很多数据点,所以快速方法会很棒。如果有人对我如何实现这个有任何想法,我将不胜感激!
您可以调用 pd.get_dummies()
,然后用 NaN
替换您的 0
计数并使用 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
我正在尝试以 pandas 数据帧格式在 python 中创建虚拟变量。我有一个名为“重量组”的变量,我想像这样转换变量:
改造前:
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 列。我有很多数据点,所以快速方法会很棒。如果有人对我如何实现这个有任何想法,我将不胜感激!
您可以调用 pd.get_dummies()
,然后用 NaN
替换您的 0
计数并使用 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