我正在尝试使用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.6和pandas 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>