首页 > 解决方案 > Python:尝试将单列从 Float 转换为 Int

问题描述

Python 新手。在 PythonAnywhere 中使用大型数据集。出于某种原因,我的 CSV 将“年份”作为文本引入。我能够使用 pd.to_numeric 将其设为数字​​。但现在它是一个浮点数,我想要一个整数。我尝试了 .dropna().apply(np.int64) 但它仍然以 int 形式出现。我需要 dropna,因为显然有一些缺失值代码:

import pandas as pd
import numpy as np

movies_df = pd.read_csv("movies_All.csv")

recentdf = movies_df.copy()

recentdf['Year'] = pd.to_numeric(recentdf['Year'], errors = 'coerce')

recentdf['Year'] = recentdf['Year'].dropna().apply(np.int64)

#recentdf = recentdf[recentdf['Year'] > 2000]

print(recentdf['Year'].head())

输出:名称:年份,dtype:float64

标签: python-3.xpandas

解决方案


我不确定您的示例数据是什么样的,但请尝试使用

“.astype(int)”而不是“.apply(np.int64)”

这是因为 pandas 数据框对象由 numpy 数组组成。因此,这个 numpy 转换应该适用于您的操作。

可以在此处找到有关此操作的文档。


推荐阅读