Pandas Dataframe Numbers Comma Formatted

Joydeep C chalao.adda at gmail.com
Sat May 9 11:32:17 EDT 2020


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.


More information about the Python-list mailing list