python - 熊猫在带有数字和字符串的列中应用小数
问题描述
我有一列包含数字和字符串。例如:
Result:
Failed
8.05
9
7
如何更改数据以显示两位小数,即如下?
Result:
Failed
8.05
9.00
7.00
我正在尝试以下方法,但它不起作用。谢谢你的帮助!
df['Result'] = df['Result'].apply('{:.2f}'.format)
解决方案
我认为需要创建布尔掩码:
#numeric with strings
df = pd.DataFrame({'Result':['Failed',8.05,9,7]})
mask = pd.to_numeric(df['Result'], errors='coerce').notnull()
df.loc[mask, 'Result'] = df.loc[mask, 'Result'].apply('{:.2f}'.format)
print (df)
0 Failed
1 8.05
2 9.00
3 7.00
如果所有字符串都需要首先转换为float
s:
df = pd.DataFrame({'Result':['Failed','8.05','9','7']})
mask = pd.to_numeric(df['Result'], errors='coerce').notnull()
df.loc[mask, 'Result'] = df.loc[mask, 'Result'].astype(float).apply('{:.2f}'.format)
print (df)
Result
0 Failed
1 8.05
2 9.00
3 7.00
推荐阅读
- java - 从 Firebase 获取数据的 Android 片段未显示
- python - 浮点输入/Python
- apache-spark - Spark Window 函数在排序时具有滑动窗口行为
- ms-access - 如何创建受信任的 ACCDE 访问文件?
- node.js - 下载并解压缩文件而不是检查内容,异步等待问题,node.js
- r - 按因子变量分组后嵌套小标题会在 R 中产生 NULL 元素
- spring-boot - 使用 @QueryDsl 谓词和页面的测试控制器
- php - Laravel 与 Docker-Compose
- python - 如何确定数据集中影响最大的输入变量?
- biztalk - 为什么从 sql 进行轮询操作后,我的发送端口在 biztalk 中不起作用?