How to change a DataFrame column type to float, int and string with Python?

In today’s short tutorial we’ll learn how to easily convert DataFrame columns to different types.

Let’s start by defining a very simple Data Frame made from a list of lists. You might want follow along by running the code in your Jupyter Notebook.

import pandas as pd

employee = ['Eric', 'Tom', 'John', 'Dean']
sales = [140.3, 140.2, 180.2, 167.1]
salary = [87, 92, 76, 98]

'create the dataframe

revenue = pd.DataFrame(dict(emp=employee, sales=sales, sal=salary))

Let’s look into the column data types:


We’ll receive the following output:

emp       object
sales    float64
sal        int64
dtype: object

Change column to integer

We’ll start by using the astype method to convert a column to the int data type. Run the following code:

# convert to int

Change column to float in Pandas

Next example is to set the column type to float.


Convert column to string type

Third example is the conversion to string. In a nutshell, you can accomplish that by using the following very simple snippet below:


Converting multiple columns to float, int and string

You can easily change the type for multiple columns, simply by passing a dictionary with the corresponding column index and target type to the astype method. We’ll persist the changes to the column types by assigning the result into a new DataFrame.

# putting everything together

revenue_2 = revenue.astype({'emp':'string', 'sales':'int', 'sal':'float'})

Now we can easily check the dtypes:


And the result will be as expected:

emp       string
sales      int32
sal      float64
dtype: object