gpt4 book ai didi

Python:pd.get_dummies() 会丢弃空值

转载 作者:行者123 更新时间:2023-12-01 01:47:19 24 4
gpt4 key购买 nike

我有一个 Pandas DataFrame,df。它由数字变量和分类变量组成,其中包含 NaN/NULL 值。要继续进行数据预处理,我必须对 calcategori 变量进行 one-hot 编码,并使用 pd.get_dummies() 来完成此操作。

但是,使用 .get_dummies 后,原始 df 中的 NULL 不再出现在单热编码的 df_ohe 中>。我想知道如何在我的新数据帧 df_ohe 中删除空值。我检查了 .get_dummies 的文档,但我不明白为什么空观察值被删除。

df_ohe = pd.get_dummies(df.drop(['classLabel'], axis=1), drop_first=True)

变量的空值计数显示结果表中没有空值,df_ohe:

df_ohe.isnull().sum()
v2 0
v3 0
v5 0
v6 0
v7 0
v10 0
v13 0
v14 0
v15 0
v17 0
classLabel_int 0
v1_b 0
v4_u 0
v4_y 0
v8_t 0
v9_t 0
v11_t 0
v12_p 0
v12_s 0
v16_t 0

原件有空值:

df.isnull().sum()
v1 39
v2 39
v3 0
v4 64
v5 0
v6 0
v7 0
v8 0
v9 0
v10 0
v11 0
v12 0
v13 100
v14 0
v15 100
v16 2145
v17 0
classLabel 0
classLabel_int 0

为什么我的空值会被丢弃?

最佳答案

当您的分类值中包含 Null/NaN 时,空值将被忽略 - 即您在新创建的列中得到 0,如果您将 dummy_na=True 参数传递给 get_dummies 调用,您仍然不会有空值,但您会得到空值为 1 的新列,例如

import pandas as pd
import numpy as np
df = pd.DataFrame([[1,'a'], [2, None],[np.nan,'f']])
df

enter image description here

pd.get_dummies(df)

enter image description here

第 1 行第 1_a 和 1_f 列为零

pd.get_dummies(df,dummy_na=True)

enter image description here

分类特征有一个新列(1_nan),非分类特征不受影响

关于Python:pd.get_dummies() 会丢弃空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51147326/

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