栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在pandas数据框中使用逐行应用时,如何保留数据类型?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在pandas数据框中使用逐行应用时,如何保留数据类型?

您的整数越来越 upcasted
成浮动。如果可能,Pandas(和NumPy)将尝试将Series(或ndarray)制成单个数据类型。据我所知,没有详细记录向上转换的规则,但是您可以使用看到如何向上转换不同的类型

numpy.find_common_type

您可以通过在调用apply之前将Dataframe强制转换为“ Object”类型来欺骗Pandas和NumPy保持原始数据类型,如下所示:

df['string_col'] = df[['int_col', 'float_col']].astype('O').apply(func, axis=1)

让我们分解一下这里发生的事情。首先,我们做完后df会发生什么

.astype('O')

as_object = df[['int_col', 'float_col']].astype('O')print(as_object.dtypes)

给出:

int_col      objectfloat_col    objectdtype: object

好的,现在两列都具有相同的dtype,即object。我们从之前知道

apply()
(或者从Dataframe中提取一行的任何其他东西)都将尝试将两列转换为相同的dtype,但是它将看到它们已经相同,因此无需执行任何操作。

但是,我们仍然能够获得原始的整数和浮点数,因为它的

dtype('O')
行为就像某种可以容纳任何python对象的容器类型。通常,当Series包含非混合类型(例如字符串和整数)或NumPy无法理解的任何python对象时,可以使用它。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/614241.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号