Joydeep C wrote:
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.

So convert back to float in the lambda, when appropriate, then use the
format string.



--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to