![](/img/trans.png)
[英]Set decimal precision of a pandas dataframe column with a datatype of Decimal
[英]How to return the maximum decimal "precision" and "scale" from pandas dataframe column?
我正在尝试创建一个 function 读取 dataframe 浮动 64 列并返回最大精度和比例,就好像它是 SQL 数据类型一样。 例如,假设我有一列“收入”,其值为:
Earnings
100.01
100.011423
100.02
100.02231492
100.0313
100.044
在此示例中,最大精度为 11,因为数字数量最多的值 100.02231492 包含 11 个总数。 最大比例也是 8,因为相同的数字具有最高的小数位数 (8)。 function 理想情况下能够应用于 float64 列的列表,并返回每列的最大精度和比例。
我尝试过类似的东西:
floats=staking_df.select_dtypes(include=[float])
floats=floats.astype(str).apply(lambda x: x.str.split('.'))
哪个会回报我
Earnings
[100],[01]
[100],[011423]
[100],[02]
[100],[02231492]
[100],[0313]
[100],[044]
最终,该列的 function 将返回 (11, 8) 的元组。 对于多列的应用,我不确定如何进行。 我不禁认为到目前为止所写的这个操作也是低效的。 有没有更好的方法来解决这个问题?
尝试:
get_tuple = lambda x: (len(x)-1, len(x.split('.')[1]))
out = max(df['Earnings'].astype(str).apply(get_tuple), key=lambda x: x[1])
print(out)
# Output:
(11, 8)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.