python - 如何在数据帧上执行 pd.get_dummies(),同时保留 NA 值而不是创建 NA 列?

标签 python pandas data-science

我的数据集缺少一些数据。我想在执行 pd.get_dummies() 时保持数据中的缺失。

这是一个示例数据集:

Table 1.

someCol
   A
   B
   NA
   C
   D

我希望 pd.get_dummies(df, dummy_na=True)) 将数据转换为如下所示:

Table 2.

someCol_A  someCol_B  someCol_NA  someCol_C  someCol_D
    1         0           0           0          0    
    0         1           0           0          0    
    0         0           1           0          0    
    0         0           0           1          0    
    0         0           0           0          1   

但是,我想要的是这样的:

Table 3.

someCol_A  someCol_B   someCol_C  someCol_D
    1         0           0          0    
    0         1           0          0    
    NA        NA          NA         NA    
    0         0           1          0    
    0         0           0          1   

请注意,第 3 行用 NA 代替了从原始列中分解出来的所有行值。

如何获得表 3 的结果?

最佳答案

有点黑客,但你可以做这样的事情,你只获取非空行的虚拟值,然后通过重新索引结果来将缺失值重新插入到正确的位置根据原始数据帧的索引进行虚拟

pd.get_dummies(df.dropna()).reindex(df.index)

   someCol_A  someCol_B  someCol_C  someCol_D
0        1.0        0.0        0.0        0.0
1        0.0        1.0        0.0        0.0
2        NaN        NaN        NaN        NaN
3        0.0        0.0        1.0        0.0
4        0.0        0.0        0.0        1.0

关于python - 如何在数据帧上执行 pd.get_dummies(),同时保留 NA 值而不是创建 NA 列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67064941/

相关文章:

python - 尝试发回消息时,Teams Bot 抛出未经授权的错误

python - 没有频率的差异pandas.DateTimeIndex

python - Pandas:按行扩展数据帧,类似于 R 的 SurvSplit()

python - Pandas:使用 groupby 对象进行循环的有效方法

python - 在 R 中使用自定义分词器将文本转换为向量?

python - Docopt 选项配置中的文本如何换行?

python - 如何让 Bokeh HTML 可视化显示在 WordPress 上?

python - Pandas : Get the least number of records so all columns have at least one non null value

julia - 寻找高噪声数据的聚类算法

python-3.x - 如何在Python中查找信号的相似事件