Python Pandas get_dummies() 限制。不转换所有列

标签 python pandas one-hot-encoding

我的数据框中有 6 列。其中 2 个具有大约 3K 个唯一值。当我在整个数据帧上使用 get_dummies() 或仅在这 2 列中使用时,返回的是具有 3k 值的完全相同的列。 get_dummies 无法模拟较大的列。 有些列确实得到了 one-hot 编码,但大列没有。

我想知道 get_dummies 是否只适用于基数较小的集合。

我相信这也在此处讨论:Need help with python(pandas) script

最佳答案

它似乎符合我的预期。

考虑随机 3 个字符串的系列 s

import pandas as pd
import numpy as np
from string import lowercase

np.random.seed([3,1415])
s = pd.DataFrame(np.random.choice(list(lowercase), (10000, 3))).sum(1)

s.nunique()

7583

然后分配数据框df

df = s.str.get_dummies()

df.shape

(10000, 7583)

df.sum(1).describe()

count    10000.0
mean         1.0
std          0.0
min          1.0
25%          1.0
50%          1.0
75%          1.0
max          1.0
dtype: float64

关于Python Pandas get_dummies() 限制。不转换所有列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39491225/

相关文章:

python - 创建一个 Pandas 表

python - 基于具有默认值的形状创建 DataFrame

python - Pandas - 修改每个单元格中的字符串值

python - 使用 pandas 或 scikit-learn 对多维数组进行一次性编码

sql - 将表转换为多行的 one-hot 编码

python - Plotly Express 乡村地区的合唱团

python - 从 Python 数组创建 NxM 索引

python - PythonAnywhere.com 上未启用 Scrapy 项目管道

python - 是否可以在 sys.exit(1) 之后使用导入?

tensorflow - 混合 one_hot 和 float 输入