gpt4 book ai didi

python-3.x - 为什么 pandas 自己将 dataframe 中的 int 值转换为 float 值?

转载 作者:行者123 更新时间:2023-12-02 17:25:18 24 4
gpt4 key购买 nike

我是新来的,理想情况下我会就我从哪里学到 idxmax 的用法的问题发表评论。 :

我使用了相同的方法,下面是我的代码

df = pd.DataFrame(np.arange(16).reshape(4,4),columns=["A","B","C","D"],index=[0,1,2,3])

一旦我在此 df 上使用 df[(df>6)],这些 int 值就会更改为 float?

        A   B   C   D
0 NaN NaN NaN NaN
1 NaN NaN NaN 7.0
2 8.0 9.0 10.0 11.0
3 12.0 13.0 14.0 15.0

为什么 Pandas 要这么做?另外,我在某处读到我可以在系列上使用 dtype=object ,但是还有其他方法可以避免这种情况吗?

最佳答案

如果你确实想让 int 看起来像

df.astype(object).mask(df<=6)
Out[114]:
A B C D
0 NaN NaN NaN NaN
1 NaN NaN NaN 7
2 8 9 10 11
3 12 13 14 15

您可以通过here查找更多信息,和here

这种权衡主要是出于内存和性能的原因,也是为了使最终的系列继续是“数字”。一种可能性是使用 dtype=object 数组。

有关astype(object)的更多信息

df.astype(object).mask(df<=6).applymap(type)
Out[115]:
A B C D
0 <class 'float'> <class 'float'> <class 'float'> <class 'float'>
1 <class 'float'> <class 'float'> <class 'float'> <class 'int'>
2 <class 'int'> <class 'int'> <class 'int'> <class 'int'>
3 <class 'int'> <class 'int'> <class 'int'> <class 'int'>

关于python-3.x - 为什么 pandas 自己将 dataframe 中的 int 值转换为 float 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47150388/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com