![](/img/trans.png)
[英]Set decimal precision of a pandas dataframe column with a datatype of Decimal
[英]Set Decimal Point Precision in a Pandas Dataframe
我有一個 dataframe 看起來像這樣 -
去向
A B
0 1 2
1 2 3
2 3 4
我想創建一個可以執行以下操作的 function -
df.numberformat['A']='0.2f'
我知道這可以使用pandas.set_option('display.float_format', '{:.2f}'.format)
來完成。 但是,我想創建一個繼承pandas.DataFrame的pandas.DataFrame
並創建一個如前所述的功能。
有任何想法嗎。
Pandas 有一個表可視化DataFrame.style
屬性,它返回一個 Styler object。格式 function 有一個精度參數,專門幫助格式化浮點數。
所以你所要做的就是
df.style.format(precision=0)
如果您願意,也可以直接傳入說明符
df.style.format('{:.0f}')
使用@droebi 提供的鏈接的一些幫助並編寫了一個CustomDataFrame
class 繼承了 pandas dataframe 並創建了一個可以根據用戶請求格式化列的自定義數字格式方法。
class CustomDataFrame(pd.DataFrame):
def __init__(self,df):
super().__init__(df)
self.numberformat=self.format
def format(self, column, format_):
return pd.DataFrame(self[column]).astype(float).applymap(format_.format)
下面a
object 是 dataframe 但 class CustomDataFrame
-
df=pd.DataFrame({"A":[1,2,3],"B":[2,3,4]})
a=CustomDataFrame(df)
a.numberformat('A','{:,.2f}')
我無法使用Styler
object,因為我需要保留格式並在代碼中進一步使用格式化數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.