簡體   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