On Sat, 09 May 2020 17:24:41 +0200, Python wrote: > Joydeep C wrote: >> On Sat, 09 May 2020 15:46:27 +0200, Python wrote: >> >>> Joydeep C wrote: >>>> On Sat, 09 May 2020 14:42:43 +0200, Python wrote: >>>> >>>>> Joydeep wrote: >>>>>> I have a Pandas dataframe like below. >>>>>> >>>>>> X Y >>>>>> 0 12345 67890 1 54321 N/A 2 67890 123456 >>>>>> >>>>>> I need to make these numbers comma formatted. For example, 12345 => >>>>>> 12,345. >>>>> >>>>> >>> value = 12345 f'{value:,}' # >= 3.6 >>>>> '12,345' >>>>> >>> '{:,}'.format(value) # >= 2.7 >>>>> '12,345' >>>> >>>> I need all the numbers in the whole dataframe to be formatted like >>>> that, >>>> not one value. >>> >>> >>> data.applymap((lambda x: f"{x:,}") ) >>> X Y >>> 0 12,345 67,890.0 1 54,321 nan 2 67,890 12,345.0 >>> >>> data.apply(np.vectorize((lambda x: f"{x:,}"))) >>> X Y >>> 0 12,345 67,890.0 1 54,321 nan 2 67,890 12,345.0 >> >> It's giving error - "Cannot specify ',' with 's'." > > It means that you're not storing numbers in your dataframe but strings, > which is likely not what you want here. Fix that first.
Of course, they are strings. It's "N/A", not nan. -- https://mail.python.org/mailman/listinfo/python-list