我想知道是否可以要求pandas中的get_dummies函数输出比默认float64更轻的数据类型的dummies数据帧。
因此,对于具有分类列的示例数据帧:
In []: df = pd.DataFrame([(blue,wood),(blue,metal),(red,wood)],
columns=['C1','C2'])
In []: df
Out[]:
C1 C2
0 blue wood
1 blue metal
2 red wood
拿到假人后,看起来像:
In []: df = pd.get_dummies(df)
In []: df
Out[]:
C1_blue C1_red C2_metal C2_wood
0 1 0 0 1
1 1 0 1 0
2 0 1 0 1
很好。但是,默认情况下,1和0是float64:
In []: df.dtypes
Out[]:
C1_blue float64
C1_red float64
C2_metal float64
C2_wood float64
dtype: object
我知道以后可以用astype
更改数据类型:
In []: df = pd.get_dummies(df).astype(np.int8)
但我不想让内存中有带浮点数的数据帧,因为我正在处理一个大数据帧(来自大约5Gb的csv)。我想让假人直接成为整数。
目前没有回答
相关问题 更多 >
编程相关推荐