gpt4 book ai didi

python - 在 Pandas 中读取带有 NaN 的整数时如何保留 dtype int

转载 作者:行者123 更新时间:2023-12-05 05:48:43 25 4
gpt4 key购买 nike

这个问题可能听起来很愚蠢,但我很想知道以下内容:

my_df = pd.read_sql_query(sql_script.read(), engine).astype(object) 

在 pandas 版本 1.0.5 中运行,并且不允许将整数列中的 NaN 转换为 float ,而在 pandas 版本 1.3.5 .astype(object) 上则完全不执行任何操作。

我很想知道这是为什么,当然还有什么是最好的方法来保持从 sql 中获得的数据而不将其转换为 float (其中列具有 NaN,因为 NaN 是 float )。

提前致谢!

最佳答案

使用 dtype 'Int64' 支持 NaN

  • 'Int64'(大写 I)是一个 pandas nullable integer , 因此它可以与 NaN 混合。
  • 默认的 numpy 整数不能与 NaN 混合,因此该列将成为 dtype object

例如,假设 Col D 列仅包含整数和 NaN:

  • 在加载时使用 dtype 参数(在大多数 read_* 方法中可用):

    df = pd.read_sql_query(sql_script.read(), engine, dtype={'Col D': 'Int64'})
    # ^^^^^
  • 或者使用astype加载后:

    df = pd.read_sql_query(sql_script.read(), engine).astype({'Col D': 'Int64'})
    # ^^^^^^

关于python - 在 Pandas 中读取带有 NaN 的整数时如何保留 dtype int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70778065/

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