Python 如何在pandas中获取浮点列的整数部分
假设我有一个数据帧df,如下所示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'])
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