python-3.x - 如何检查小数点后的数字?
问题描述
如何检查小数点后的数字?
import pandas as pd
df = pd.DataFrame({'num':[1,2,3.5,4,5.8]})
东风:
num
0 1.0
1 2.0
2 3.5
3 4.0
4 5.8
检查后:
num check_point
0 1.0 0
1 2.0 0
2 3.5 1
3 4.0 0
4 5.8 1
解决方案
用于numpy.modf
获取小数点后的值,然后比较不等于ne
并转换为整数:
df['check_point'] = np.modf(df['num'])[0].ne(0).astype(int)
或使用numpy.where
:
df['check_point'] = np.where(np.modf(df['num'])[0] == 0, 0, 1)
另一个想法是测试没有的浮点数是否.0
为整数:
df['check_point'] = np.where(df['num'].apply(lambda x: x.is_integer()), 0, 1)
或者:
df['check_point'] = np.where(df['num'].sub(df['num'].astype(int)).astype(bool), 1, 0)
print (df)
num check_point
0 1.0 0
1 2.0 0
2 3.5 1
3 4.0 0
4 5.8 1
详情:
print (np.modf(df['num']))
(0 0.0
1 0.0
2 0.5
3 0.0
4 0.8
Name: num, dtype: float64, 0 1.0
1 2.0
2 3.0
3 4.0
4 5.0
Name: num, dtype: float64)
推荐阅读
- reactjs - 将异步数据加载到 React 组件中
- javascript - 自动播放来自谷歌驱动器的视频并在完成 JavaScript 时发出警报
- java - 如何处理应用程序运行时数据库关闭时发生的 MySQL CommunactionException
- python - Node.js 应用程序上的 H14 代码错误,Python 依赖于 Heroku
- ios - 使用 Accelerate 平均像素颜色
- typescript - 与打字稿版本共享全局对象
- python - 多线程处理pdf文件列表时“不支持文件格式”
- dart - Flutter 调试:设置调试布尔标志
- javascript - 如何在 HTML5/JavaScript 中加载/卸载图像
- tensorflow - LSTM 网络没有从序列中学习。使用 Keras、TF 后端进行欠拟合或过拟合