繁体   English   中英

如何从 pandas dataframe 列返回最大十进制“精度”和“比例”?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM