python-3.x - 熊猫从数据框中的浮点数中获取十进制小数部分
问题描述
如何从数据框中的浮点数(float64)中提取小数部分?(一个非常常见的场景,但我在 StackOverFlow 中找不到解决方案)
注意:要小心196.09
,我需要09
,不是9
。
示例数据框:
dollars Count
0 56.46 2
1 196.09 3
2 78.12 2
预期结果是 2 位小数:
decimal
0 46
1 09
2 12
解决方案
使用numpy.modf
, 多重 by100
并强制转换为integer
s:
df['decimal'] = (np.modf(df['dollars'])[0] * 100).astype(int)
或split
通过.
:
df['decimal'] = df['dollars'].astype(str).str.split('.').str[1].astype(int)
print (df)
dollars Count decimal
0 56.46 2 46
1 196.69 3 68
2 78.12 2 12
编辑:如果需要09
格式需要第二个解决方案 - 输出是string
s:
df['decimal'] = df['dollars'].astype(str).str.split('.').str[1]
print (df)
dollars Count decimal
0 56.46 2 46
1 196.09 3 09
2 78.12 2 12
推荐阅读
- powershell - 如何从 Powershell 启用 USB 设备
- android - 如何在 Xamarin Forms 应用程序(android)中仅激活 1 个 ListView 项并禁用其他项
- scala - 无法访问值
- dart - 什么是 Dart 运行时?
- javascript - Why does style.display change the size of my div when set to 'block'?
- javascript - 不明白为什么我的最后一项未定义
- azure-data-factory - Azure 数据工厂复制数据活动 SQL Sink 存储过程和 ARM 模板中的表类型参数
- python - 如何提取照片的对比度级别 - opencv
- javascript - Joi - 对特定条件使用“有效”
- anaconda - conda env 创建文件忽略 .condarc 中的 default_packages