应用不需要的类型转换Pandas(int 64-->float 64)

xzv2uavs  于 2023-01-28  发布在  其他
关注(0)|答案(1)|浏览(150)

为什么Pandas会自动将int64转换为float64
我已经检查了这些问题:

但据我所知,没有一个像我的情况那么简单。
我在木星实验室运行代码。

>>> df.dtypes
cd_fndo      int64
dif        float64
dtype: object

所以类型是int64float64,但是应用恒等函数会导致类型改变:

>>> df.apply(lambda x: x, axis=1).dtypes
cd_fndo    float64
dif        float64
dtype: object

然而,当仅考虑第一列时,类型int64保持相同:

>>> df.iloc[:, :1].apply(lambda x: x, axis=1).dtypes
cd_fndo    int64
dtype: object

有人能解释一下这种类型变化的原因吗?

1cklez4t

1cklez4t1#

df.apply(lambda x: x, axis=1)意味着lambdaMap到每一行。该行包含一个int和一个float,因此它被转换为float以容纳这两个元素。
在第二个示例中,行只包含1个int,因此不需要转换。

相关问题