Python 如何在pandas中获取浮点列的整数部分

Python 如何在pandas中获取浮点列的整数部分,python,pandas,numpy,Python,Pandas,Numpy,假设我有一个数据帧df,如下所示 qty 0 1.300 1 1.909 现在我只想提取qty列的整数部分,df应该如下所示 qty 0 1 1 1 尝试使用df['qty'].四舍五入(0),但由于将数字四舍五入为最接近的整数,因此未获得所需的结果 Java有一个函数intValue(),它执行所需的操作。pandas中是否有类似的函数?通过以下方式将值转换为整数: 如果不在上面工作,则可以使用之前的提取值: a, b = np.modf(df['qty'])

假设我有一个数据帧df,如下所示

    qty
0   1.300
1   1.909
现在我只想提取qty列的整数部分,df应该如下所示

   qty
0   1
1   1
尝试使用df['qty'].四舍五入(0),但由于将数字四舍五入为最接近的整数,因此未获得所需的结果


Java有一个函数intValue(),它执行所需的操作。pandas中是否有类似的函数?

通过以下方式将值转换为整数:

如果不在上面工作,则可以使用
之前的提取值:

a, b = np.modf(df['qty'])
df['qty'] = b.astype(int)
print (df)
   qty
0    1
1    1
或者在
之前拆分,但如果数据帧较大:

df['qty'] = b.astype(str).str.strip('.').str[0].astype(int)
或使用:


您可以使用方法
floordiv

df['col'].floordiv(1).astype(int)
例如:

        col
0  9.748333
1  6.612708
2  2.888753
3  8.913470
4  2.354213
输出:

0    9
1    6
2    2
3    8
4    2
Name: col, dtype: int64

它将浮点值舍入为最接近的整数。对于ex:1.909转换为2@GopalChandak-使用
1.999999
进行测试并返回
1
,但添加了另外2个解决方案。使用aType解决方案,可能是@MykolaZotko@GopalChandak-也许更简单的应该是
df['qty']=np.floor(df['qty']).astype(int)
Yeah@jezrael,上述解决方案似乎简单得多。谢谢
        col
0  9.748333
1  6.612708
2  2.888753
3  8.913470
4  2.354213
0    9
1    6
2    2
3    8
4    2
Name: col, dtype: int64