python - 从浮点数(本机浮点数或 numpy.float64)转换为整数不起作用
问题描述
我有一个加载了浮点数和 NaN 的数据框。我需要将所有小数/浮点数转换为整数。我检查了所有类型都是 numpy.float64 但我转换为整数不起作用。这就是数据框的样子。
目前,我正在使用此代码尝试将所有非 NaN 更改为整数,但它不会用数据帧中的整数替换浮点数。
for i, row in df_cn.iterrows():
for col in df_cn.columns:
cell = row[col]
if isinstance(cell, np.float64) and np.isnan(cell) == False:
cell = int(cell)
df_cn.loc[i,col] = cell
这个for循环不会用整数替换浮点数,即使我使用了df_cn.loc [],我也会收到这个错误:
我不确定我做错了什么,我做了一个类似的过程,将字符串转换为具有类似逻辑的日期时间,结果很好。也许我错过了一些非常明显的东西。我将非常感谢帮助。
解决方案
如果您的数据框中只有数字,您可以尝试:
df_c = df.applymap(np.int64)
但是,如果您的数据框可能包含非数字值,则会导致错误。
如果您仍然喜欢使用自己的代码,请尝试以下操作:
for i, row in df_cn.iterrows():
for col in df_cn.columns:
cell = row[col]
if isinstance(cell, np.float) and not np.isnan(cell):
cell = int(cell)
df_cn.loc[i,col] = cell
推荐阅读
- javascript - 扩展图像网格问题
- flowable - 访问数组的 JSON 值(Flowable)
- javascript - 使用用户可以添加输入框的动态表单发送电子邮件
- php - php。当用户选择此选项时,显示所有 12 个月的日历
- python - AttributeError:“set”对象没有属性“popleft”
- php - 找不到类“Way\Generators\GeneratorsServiceProvider”
- javascript - 为什么顶部位置只改变一次
- html - Bootstrap 4 - 卡片背景图像调整大小问题
- node.js - Sequelize - 使用或运算符和模型关联进行查询
- google-cloud-platform - Google Datastore - 字符串的索引顺序是什么?