簡體   English   中英

設置小數點精度為a Pandas Dataframe

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM