Easy way to add thousand separator to numbers in Python pandas DataFrame

后端 未结 5 447
感动是毒
感动是毒 2021-01-14 08:36

Assuming that I have a pandas dataframe and I want to add thousand separators to all the numbers (integer and float), what is an easy and quick way to do it?

5条回答
  •  不要未来只要你来
    2021-01-14 08:52

    When formatting a number with , you can just use '{:,}'.format:

    n = 10000
    print '{:,}'.format(n)
    n = 1000.1
    print '{:,}'.format(n)
    

    In pandas, you can use the formatters parameter to to_html as discussed here.

    num_format = lambda x: '{:,}'.format(x)
    def build_formatters(df, format):
        return {
            column:format 
            for column, dtype in df.dtypes.items()
            if dtype in [ np.dtype('int64'), np.dtype('float64') ] 
        }
    formatters = build_formatters(data_frame, num_format)
    data_frame.to_html(formatters=formatters)
    

    Adding the thousands separator has actually been discussed quite a bit on stackoverflow. You can read here or here.

提交回复
热议问题