Pandas 自动推断最佳数据类型:str 到 int 不起作用

2023-12-01

在超过 100 列的数据框上,我希望 pandas (v1.4.2)自动地将所有列转换为“最佳”数据类型。根据文档df.convert_dtypes() or df.infer_objects()应该可以解决问题。考虑以下示例:

>>df = pd.DataFrame({"A":["1","2"], "C":["abc","bcd"]})
>>df
   A    C
0  1  abc
1  2  bcd

>>df.dtypes
A    object
C    object
dtype: object

>>df.convert_dtypes().dtypes
A    string
C    string
dtype: object

>>df.infer_objects().dtypes
A    object
C    object
dtype: object

为什么是专栏A没有转换成int?如果我尝试错误的 pandas 方法,有什么替代方法?


查看文档转换_dtypes(),似乎该方法进行了转换Object to Int正确但无法确定字符串对象是否是数字:

>>> df = pd.DataFrame(
    {
        "A": pd.Series([3, 4, 5], dtype=np.dtype("O")),
        "B": pd.Series(["3", "4", "5"], dtype=np.dtype("O")),
        "C": pd.Series(["abc","bcd"], dtype=np.dtype("O"))
    }
)
         
>>> df.dtypes

A    object
B    object
C    object
dtype: object

>> df.convert_dtypes().dtypes

A     Int64
B    string
C    string
dtype: object

您可以使用以下方法作为转换的解决方法:

>>> df.convert_dtypes().apply(pd.to_numeric, errors="ignore").dtypes

A     Int64
B     int64
C    object
dtype: object
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pandas 自动推断最佳数据类型:str 到 int 不起作用 的相关文章

随机推荐

  • 根据可用性在 GPS 和网络提供商之间切换

    public void onCreate locationListener new GeoUpdateHandler locationManager LocationManager getSystemService Context LOCA
  • 在两列上使用 pandas 进行因式分解

    我在 pandas 数据框中有一些数据 如下所示 CAR TYPE MILEAGE FORD 100 FORD 100 FORD 200 FORD 300 VW 100 VW 150 VW 150 VW 300 我想对数据进行 因式分解 为
  • C# FTP 550错误

    我正在尝试通过 FTP 以编程方式下载 C 中的文件 以下是相关代码 显然带有伪造的凭据和 URI try var request FtpWebRequest Create ftp ftp mydomain com folder file
  • Zxing条码源码集成到Android项目中[重复]

    这个问题在这里已经有答案了 我想将 zxing 源代码集成到我的 Android 应用程序中 我已经下载了 zxing1 5 并将整个代码集成到我的应用程序中 并且我通过意图调用活动 CaptureActivity 它仅显示相机视图 但不扫
  • 当 WooCommerce 中有运费时如何隐藏免费送货

    我正在尝试计算乔治亚州不同城市的运费 我找到了这段代码 function ace change city to dropdown fields cities array Tbilisi city2 etc city args wp pars
  • 将类标记为final是否也会使每个函数成为final?

    正如标题所说 我想知道是否通过将类设为final 并让编译器进行速度优化 我是否还需要将函数标记为final 否则它们会自动变为final final应用于类使其不可子类化 因此在任何情况下您都不能覆盖任何函数或属性 因为为此您必须创建一个
  • 使用 COM 时,为什么 TypeName() 从 .GetType 和 TypeOf 返回不同的结果?

    我觉得了解这些函数工作原理的差异会让我受益匪浅 这样我就可以更好地理解何时使用每个函数 我在使用两种不同的互操作性 Excel 和 EPDM 时遇到了非常困难的情况 这两种互操作性都广泛使用了弱类型参数 我在使用返回的对象并将其转换为正确的
  • 防止屏幕捕获软件捕获应用程序屏幕

    我正在研究考试系统 作为系统的安全部分 我不希望任何人通过屏幕录制或使用如此多的免费应用程序进行桌面共享来远程泄露试卷 首先我搜索我可以阻止此类应用程序吗 但我不这么认为 因为记录 共享屏幕的方法有很多 然后我开始了解 HDCP 但我想它只
  • S3 到 Redshift:复制但访问被拒绝

    我们以前每天使用 COPY 命令从没有特定策略的存储桶将文件从 s3 复制到 Redshift COPY schema table staging FROM s3 our bucket X YYYY MM DD CREDENTIALS aw
  • 计算字符串中的大写字母

    如何使用 MySQL 查询计算大写字母 我现在正在尝试 COUNT IF MATCH post text AGAINST A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 1 NULL
  • Vue-router4 - 使用 传递对象不会传递动态数据

    我经历过这个 电子邮件受保护 对象参数这是有一定关系的 有提到这个https github com vuejs vue router next issues 494在那条线索中 但我仍然很困惑 我还尝试使用传递一些数据 to的属性路由器链接
  • 为什么使用 loc 和切片分配给数据帧与使用单列分配不同?

    我正在尝试将列从浮点型更新为整数型 考虑df在以下两种场景中 df pd DataFrame dict A 1 1 2 B 1 2 print df A dtype df loc A df A astype int print df A d
  • Angular 2将服务注入扩展类(BaseRequestOptions)

    我有以下代码扩展BaseRequestOptions class import Injectable from angular core Injectable export class AppRequestOptions extends B
  • Zend 资源自动加载器不适用于名称空间

    我在 Zend Framework 的自动加载方面遇到了困难 基本上 库文件夹中有一个名为 LunaZend 的文件夹 LunaZend 有一些可以在 Zend Framework 中使用的类 这些类具有命名空间 并且必须仅通过调用命名空间
  • 提示数独谜题的单个值

    我希望有人能够帮助我 我正在制作一个数独游戏 我编写了一个解决整个难题的类 当然它连接到另一个java文件中的操作按钮 并且效果很好 我想知道的是 如果我想制作一个 提示 按钮 是否有人可以为我指明正确的方向 该按钮会随机将正确的值应用于一
  • ListView.addFooterView(v) 不显示

    我在布局内声明了一个 ListView 当我 addFooterView v 时它不显示 造成这种情况的可能原因有哪些 ListView 或我的适配器中是否有一些设置可以立即显示此内容 它最终会显示 但只有在重新初始化视图 适配器等之后才会
  • 如何使用 python xarray 使用多维坐标对数据进行子集化?

    我有一个使用多维坐标的 netcdf 文件 我的 xarray 数据集看起来像这样
  • 使用自定义 ISO 创建 Google Cloud 实例

    我想使用 Ubuntu 18 04 LTS 创建一个新的 Google Cloud Compute Engine 实例 我尝试使用内置映像来完成此操作 并尝试使用 VNC 设置 Ubuntu 桌面 我最终确实把一切都搞定了 但觉得安装桌面环
  • 将单元格颜色映射到 kableExtra 中的数据值以创建热图表

    我有一个下表 想要应用 ROW 级别的热图 1 知道怎么做吗 现在 热图对于下面单行中的两个值是相同的 2 有没有办法使组列的标题不成 90 度角 现在所有标题都是有角度的 但对于组列来说 最好不设置角度 90 这是 rmd 文件 titl
  • Pandas 自动推断最佳数据类型:str 到 int 不起作用

    在超过 100 列的数据框上 我希望 pandas v1 4 2 自动地将所有列转换为 最佳 数据类型 根据文档df convert dtypes or df infer objects 应该可以解决问题 考虑以下示例 gt gt df p