Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Pandas format column as currency

Given the following data frame:

import pandas as pd
df = pd.DataFrame(
        {'A':['A','B','C','D'],
         'C':[12355.00,12555.67,640.00,7000]
        })
df

    A   C
0   A   12355.00
1   B   12555.67
2   C   640.00
3   D   7000.00

I'd like to convert the values to dollars in thousands of USD like this:

    A   C
0   A   $12.3K
1   B   $12.5K
2   C    $0.6K
3   D    $7.0K

The second thing I need to do is somehow get these into a Seaborn heat map, which only accepts floats and integers. See here for more on the heat map aspect.

I'm assuming once the floats are converted to currency, they will be in object format but I'm hoping there's a way around that.

Thanks in advance!

like image 692
Dance Party2 Avatar asked Jan 26 '16 16:01

Dance Party2


People also ask

How do I change the format of a column in pandas?

The best way to convert one or more columns of a DataFrame to numeric values is to use pandas. to_numeric() . This function will try to change non-numeric objects (such as strings) into integers or floating-point numbers as appropriate.

How do you show currency in python?

To format numbers as currency in Python, the easiest way is with the locale module. You can also use the string format() function. Finally, you can use the babel. numbers module to format numbers as money and currency.


1 Answers

Or you could use a lambda function for shorter syntax

df['C'] = df['C'].apply(lambda x: "${:.1f}k".format((x/1000)))
like image 90
Jace Whitmer Avatar answered Oct 01 '22 23:10

Jace Whitmer