我有这段代码:import polars as pldf = pl.DataFrame({'size': [34.2399, 1232.22, -479.1]})df.with_columns(pl.format('{:,.2f}', pl.col('size')))但是失败了:ValueError - Traceback,第 3 行...
我有这个代码:
import polars as pl
df = pl.DataFrame({'size': [34.2399, 1232.22, -479.1]})
df.with_columns(pl.format('{:,.2f}', pl.col('size')))
但失败了:
ValueError - Traceback, line 3
2 df = pl.DataFrame({'size': [34.2399, 1232.22, -479.1]})
----> 3 df.with_columns(pl.format('{:,.2f}', pl.col('size')))
File polars\functions\as_datatype.py:718, in format(f_string, *args)
717 msg = "number of placeholders should equal the number of arguments"
--> 718 raise ValueError(msg)
ValueError: number of placeholders should equal the number of arguments
如何 float
使用类似格式说明符来 int
或 '{:,.2f}'
?
正如 @mozway 所概述的,通用格式字符串尚不支持 pl.format
。相应的 功能请求 已经包含一个 (最常见的) C 样式格式的很好的极点实现 sprint
。
如果效率不是太大的问题(例如在探索性数据分析中),您可以简单地使用 pl.Expr.map_elements
并回到简单的 python 解决方案。
df.with_columns(
pl.col("size").map_elements(lambda x: f"{x:,.2f}", return_dtype=pl.String)
)
shape: (3, 1)
size
---
str
34.24
1,232.22
-479.10