当输入包含浮点值而不是转换它们时,提升astype(' int')

时间:2015-11-18 14:58:47

标签: python pandas casting

给定一个简单的DataFrame,它作为整数,A列中的浮点数和B列中的两个整数:

In [1]: df = pd.DataFrame([{'A': 100, 'B': 200}, {'A': 20.5, 'B': 20}])

In [2]: df
Out[2]:
       A    B
0  100.0  200
1   20.5   20

由于A列包含一个浮点数,因此pandas将其dtype猜为float64,而将B列的dtype猜为int64

In [3]: df.dtypes
Out[3]:
A    float64
B      int64
dtype: object

现在,当我将A列的dtype转换为int时,我得到以下结果:

In [4]: df.A.astype('int')
Out[4]:
0    100
1     20
Name: A, dtype: int32

20.5的浮点值会自动截断为整数20。但是,我宁愿在尝试将float转换为整数时引发异常,因此我知道该列包含非整数值。

有什么方法可以实现这个目标吗?一种快速的方法也适用于数百万行。

0 个答案:

没有答案