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