【发布时间】:2022-01-21 01:16:52
【问题描述】:
我有以下数据框:
df = pd.DataFrame({'a': [6.6, -5.2, 2.1, 3.3, 1.1],
'b': ['a', 'a', 'c', 'b', 'a'],
'c': ['kfr', 'kfr', 'lu', 'ku', 'lu'],
'd': ['t', 's', 's', 't', 'a']})
所有 dtypes(列 b、c、d)都是字符串类型。
如果我先调用df = df.convert_dtypes(),然后再调用pd.get_dummies(),什么都不会发生。
但是当我只在数据框的一列上调用它时,它可以工作。
为什么会这样?是bug吗?
【问题讨论】:
-
什么是问题?
pd.get_dummies(df)返回包含这些列的新数据框:b_a b_b b_c c_kfr c_ku c_lu d_a d_s d_t -
所以
df = pd.get_dummies(df)什么都不做? -
尝试执行 df = df.convert_dtypes() 并运行 pd.get_dummies(df)
-
啊!现在我明白你的意思了。您绝对应该将运行
convert_dtypes的事实添加到问题中,因为这会有所不同。 -
所以在你运行
convert_dtypes之前,字符串列是dtype('O')。之后,他们是string[python]。
标签: python-3.x pandas dataframe one-hot-encoding