get_dummies()函数会更改列的dtype吗?

时间:2019-03-25 07:43:38

标签: python pandas

我有一个数据帧列['Cause'],其dtype为object,具有以下值:

Cause Water Fire Earthquake Flood

现在,当我在此列上使用get_dummies()函数时,我又获得了另外4个具有二进制值的列,如下所示:

Water | Fire | Earthquake | Flood

我的查询是,所有其他4列的数据类型均为uint8。是否需要将其转换为int64

4 个答案:

答案 0 :(得分:1)

是的,默认情况下,如果您不提及dtype,它将被转换为uint8。

您可以这样做

pd.get_dummies(..., dtype=int64)

答案 1 :(得分:0)

嗯,这取决于您,它的行为仍然像整数...

因此您可以像使用任何其他整数一样使用它,但是您还应该知道有一个IndexPath,默认情况下已经str.get_dummies

int64

答案 2 :(得分:0)

uint8是大熊猫用来与之形成“虚拟列”的默认数据类型。
您随时可以将其更改为其他 dtype

但是请记住,该dtype将分配给所有已虚拟化的列。 例如:

pd.get_dummies(df, columns=['col1'], dtype='str')

将创建虚拟化的列,所有列的数据类型为 str

答案 3 :(得分:0)

您无需再次转换。将其转换为length()时,您可以定义get_dummies()

dtype