Convert Float to Integer in pandas DataFrame Column in Python (4 Examples)
In this Python tutorial you’ll learn how to convert a float column to the integer data type in a pandas DataFrame.
The post will contain these topics:
Let’s dive into it!
Example Data & Add-On Libraries
We first have to load the pandas library, if we want to apply the functions that are included in the library:
import pandas as pd # Import pandas library in Python
We also have to construct some data that we can use in the following examples:
data = pd.DataFrame({'x1':[4, 7, 3, 5, 1, 7.5], # Create pandas DataFrame 'x2':[2, 9, 1.1, 1, 9, 7], 'x3':[8.2, 1, 9, 8, 1, 7]}) print(data) # Print pandas DataFrame # x1 x2 x3 # 0 4.0 2.0 8.2 # 1 7.0 9.0 1.0 # 2 3.0 1.1 9.0 # 3 5.0 1.0 8.0 # 4 1.0 9.0 1.0 # 5 7.5 7.0 7.0
Have a look at the previous Python console output. It shows that our pandas DataFrame contains six rows and three columns.
Let’s check the classes of our DataFrame columns:
print(data.dtypes) # Check data types of columns # x1 float64 # x2 float64 # x3 float64 # dtype: object
All columns in our example data set have the float data type.
Example 1: Convert Single pandas DataFrame Column from Float to Integer
In this section, I’ll show how to convert one single column of a pandas DataFrame from the float class to the integer data type in Python.
To accomplish this, we can apply the astype function as you can see below:
data_new1 = data.copy() # Create copy of DataFrame data_new1['x1'] = data_new1['x1'].astype(int) # Transform float to integer print(data_new1) # Print updated pandas DataFrame # x1 x2 x3 # 0 4 2.0 8.2 # 1 7 9.0 1.0 # 2 3 1.1 9.0 # 3 5 1.0 8.0 # 4 1 9.0 1.0 # 5 7 7.0 7.0
The previous console output already shows a difference – the column x1 does not show decimal points anymore. Furthermore, the value 7.5 in the last row has been rounded to 7.
We can also see this difference when checking the data types of the columns in our new data set:
print(data_new1.dtypes) # Check data types of columns # x1 int32 # x2 float64 # x3 float64 # dtype: object
As you can see, the first column x1 has been transformed to the integer class.
Example 2: Convert Multiple pandas DataFrame Columns from Float to Integer
This section demonstrates how to transform multiple variables from the float to the integer data type.
To achieve this, we can use the astype function once again:
data_new2 = data.copy() # Create copy of DataFrame data_new2 = data_new2.astype({'x2': int, 'x3': int}) # Transform multiple floats to integer print(data_new2) # Print updated pandas DataFrame # x1 x2 x3 # 0 4.0 2 8 # 1 7.0 9 1 # 2 3.0 1 9 # 3 5.0 1 8 # 4 1.0 9 1 # 5 7.5 7 7
As you can see, the columns x2 and x3 have been rounded down and do not have any decimal points anymore.
Let’s have another look at the data types of our pandas DataFrame columns:
print(data_new2.dtypes) # Check data types of columns # x1 float64 # x2 int32 # x3 int32 # dtype: object
As you can see, the data types of the variables x2 and x3 have been switched from float to integer.
Example 3: Convert All pandas DataFrame Columns from Float to Integer
The following code explains how to change the data types of all columns in a pandas DataFrame from float to integer in the Python programming language.
For this task, we can use the astype function once again. However, this time we are applying this function to the entire data set:
data_new3 = data.copy() # Create copy of DataFrame data_new3 = data_new3.astype(int) # Transform all columns to integer print(data_new3) # Print updated pandas DataFrame # x1 x2 x3 # 0 4 2 8 # 1 7 9 1 # 2 3 1 9 # 3 5 1 8 # 4 1 9 1 # 5 7 7 7
As you can see based on the previous output, all columns have been rounded down.
Let’s print the data types of the columns in our new data set:
print(data_new3.dtypes) # Check data types of columns # x1 int32 # x2 int32 # x3 int32 # dtype: object
The dtypes of all columns have been changed to the integer class.
Example 4: Convert pandas DataFrame Column from Float to Integer Using apply() Function
In Examples 1-3, we have used the astype function. Example 4, in contrast, explains how to use the apply function to convert float columns to the integer data type.
Consider the Python syntax below:
data_new4 = data.copy() # Create copy of DataFrame data_new4['x1'] = data_new4['x1'].apply(int) # Transform float to integer print(data_new4) # Print updated pandas DataFrame # x1 x2 x3 # 0 4 2.0 8.2 # 1 7 9.0 1.0 # 2 3 1.1 9.0 # 3 5 1.0 8.0 # 4 1 9.0 1.0 # 5 7 7.0 7.0
Now, let’s test the data types of our columns:
print(data_new4.dtypes) # Check data types of columns # x1 int64 # x2 float64 # x3 float64 # dtype: object
Similar to Example 1, we have modified only the data type of one specific column.
Video, Further Resources & Summary
Do you want to learn more about the transformation of a float column to the integer data type in a pandas DataFrame? Then I can recommend having a look at the following video on my YouTube channel. In the video, I illustrate the examples of this post in Python:
The YouTube video will be added soon.
Also, you may read some of the related articles on my homepage. I have released several tutorials on related topics such as counting and lists already.
- Handling DataFrames Using the pandas Library in Python
- Convert Integer to Float in pandas DataFrame Column
- Transform Float to String in pandas DataFrame Column
- Convert String to Integer in pandas DataFrame Column in Python
- Insert Column at Specific Position of pandas DataFrame in Python
- Check if Column Exists in pandas DataFrame in Python
- Get pandas DataFrame Column as List in Python
- Add Column to pandas DataFrame in Python
- Add Column from Another pandas DataFrame in Python
- Count Unique Values in Column of pandas DataFrame in Python
- The Python Programming Language
Summary: In this tutorial, I have shown how to transform a float column to the integer data type in a pandas DataFrame in the Python programming language. In case you have further questions, don’t hesitate to let me know in the comments below.