Pandas让虚拟机输出dtype integer/bool

2024-04-27 10:18:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道是否可以要求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)。我想让假人直接成为整数。


Tags: 数据indfgetblueredoutpd