gpt4 book ai didi

python - 当我的内核对这个 DataFrame 进行热编码时,是否应该继续死掉?

转载 作者:太空宇宙 更新时间:2023-11-03 14:39:22 24 4
gpt4 key购买 nike

以下是数据框的详细信息:

  • 形状 = (4584, 562)
  • 分类变量数量 = 58

我的计算机具有以下规范:

  • 16GB 内存
  • 2.6 GHz 英特尔酷睿 i7

这是我编写代码的方式:

df_encoded = df

for idx, var in enumerate(cat_vars):
temp = pd.get_dummies(df_encoded.iloc[:,idx], prefix = cat_vars[idx])

temp = df_encoded.drop(cat_vars[0], axis=1)
df_encoded = pd.concat([df_encoded, temp], axis=1)

df_encoded.head()

cat_vars 是所有被视为分类的特征。如果您想了解更多信息,请告诉我。这看起来很奇怪,我的电脑无法运行这个。

最佳答案

我认为循环没有必要:

df = pd.DataFrame({'A':list('absdektg'),
'B':list('scfvbngf'),
'C':list('dsxcdscv'),
'D':list('fscvdcvf'),
'E':list('dswxaxcc')})

print (df)
A B C D E
0 a s d f d
1 b c s s s
2 s f x c w
3 d v c v x
4 e b d d a
5 k n s c x
6 t g c v c
7 g f v f c

cat_vars = list('ABCD')
df_encoded = pd.get_dummies(df[cat_vars])
df_encoded = pd.concat([df, df_encoded], axis=1)
<小时/>
print (df_encoded)
A B C D E A_a A_b A_d A_e A_g ... C_c C_d C_s C_v C_x D_c \
0 a s d f d 1 0 0 0 0 ... 0 1 0 0 0 0
1 b c s s s 0 1 0 0 0 ... 0 0 1 0 0 0
2 s f x c w 0 0 0 0 0 ... 0 0 0 0 1 1
3 d v c v x 0 0 1 0 0 ... 1 0 0 0 0 0
4 e b d d a 0 0 0 1 0 ... 0 1 0 0 0 0
5 k n s c x 0 0 0 0 0 ... 0 0 1 0 0 1
6 t g c v c 0 0 0 0 0 ... 1 0 0 0 0 0
7 g f v f c 0 0 0 0 1 ... 0 0 0 1 0 0

D_d D_f D_s D_v
0 0 1 0 0
1 0 0 1 0
2 0 0 0 0
3 0 0 0 1
4 1 0 0 0
5 0 0 0 0
6 0 0 0 1
7 0 1 0 0

[8 rows x 30 columns]

如果需要唯一的列名称,请添加参数 prefixprefix_sep 并按具有聚合 max 的列进行分组:

df_encoded1 = (pd.get_dummies(df[cat_vars], prefix='', prefix_sep='')
.groupby(level=0, axis=1).max())
df_encoded1 = pd.concat([df, df_encoded1], axis=1)
print (df_encoded1)
A B C D E a b c d e f g k n s t v x
0 a s d f d 1 0 0 1 0 1 0 0 0 1 0 0 0
1 b c s s s 0 1 1 0 0 0 0 0 0 1 0 0 0
2 s f x c w 0 0 1 0 0 1 0 0 0 1 0 0 1
3 d v c v x 0 0 1 1 0 0 0 0 0 0 0 1 0
4 e b d d a 0 1 0 1 1 0 0 0 0 0 0 0 0
5 k n s c x 0 0 1 0 0 0 0 1 1 1 0 0 0
6 t g c v c 0 0 1 0 0 0 1 0 0 0 1 1 0
7 g f v f c 0 0 0 0 0 1 1 0 0 0 0 1 0

关于python - 当我的内核对这个 DataFrame 进行热编码时,是否应该继续死掉?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46658568/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com