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

在Pandas中将float64列转换为int64

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

在Pandas中将float64列转换为int64

大熊猫 0.24+的 解决方案,用于转换缺少值的数字:

df = pd.Dataframe({'column name':[7500000.0,7500000.0, np.nan]})print (df['column name'])0    7500000.01    7500000.02          NaNName: column name, dtype: float64df['column name'] = df['column name'].astype(np.int64)

ValueError:无法将非限定值(NA或inf)转换为整数

#http://pandas.pydata.org/pandas-docs/stable/user_guide/integer_na.htmldf['column name'] = df['column name'].astype('Int64')print (df['column name'])0    75000001    75000002        NaNName: column name, dtype: Int64

我认为您需要转换为

numpy.int64

df['column name'].astype(np.int64)

样品:

df = pd.Dataframe({'column name':[7500000.0,7500000.0]})print (df['column name'])0    7500000.01    7500000.0Name: column name, dtype: float64df['column name'] = df['column name'].astype(np.int64)#same as#df['column name'] = df['column name'].astype(pd.np.int64)print (df['column name'])0    75000001    7500000Name: column name, dtype: int64

如果某些

NaN
S
IN列需要他们取代一些
int
(例如
0
)通过
fillna
,因为
type
NaN
float

df = pd.Dataframe({'column name':[7500000.0,np.nan]})df['column name'] = df['column name'].fillna(0).astype(np.int64)print (df['column name'])0    75000001          0Name: column name, dtype: int64

同时检查文档-缺少数据投射规则

编辑:

NaN
s转换值是错误的:

df = pd.Dataframe({'column name':[7500000.0,np.nan]})df['column name'] = df['column name'].values.astype(np.int64)print (df['column name'])0     75000001   -9223372036854775808Name: column name, dtype: int64


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

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

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