将pandas数据帧数据类型从float64转换为int64



我正在尝试使用python-panda读取CSV文件,在生成的数据帧中,有一列返回为float64数据类型,而不是int64。但我可以看到,在现有的CSV文件中,大多数值都是数字,其中一些是空值

df = pd.read_csv(file)
dh.head(3)
Name State  Id
SFO  CA     123.0
JFK  NY     152.0
CHG  IL     NaN
ABC  AZ     NaN
df.dypes
Name Object
State Object
Id float64

我尝试将Id列转换为Int64,以将数据上传到oracle表

df['Id'] = df['Id'].astype('int64')

错误:无法将NA转换为整数

有什么方法可以将Id列转换为int64吗?我感谢你的回复。

Python 3.7.6pandas 1.0.3中,您可以执行:

df['Id'] = df['Id'].astype(pd.Int64Dtype())
print(df.dtypes)
print(df)

输出:

Name     object
State    object
Id        Int64
State    Id
0  SFO    CA   123
1  JFK    NY   152
2  CHG    IL  <NA>
3  ABC    AZ  <NA>

最新更新