Skip to content
Related Articles

Related Articles

Change Data Type for one or more columns in Pandas Dataframe

View Discussion
Improve Article
Save Article
  • Last Updated : 08 Jul, 2022

Let’s see How To Change Column Type in Pandas DataFrames, There are different ways of changing DataType for one or more columns in Pandas Dataframe.

Method 1:  Change column type in pandas using DataFrame.astype()

DataFrame.astype() method is used to cast pandas object to a specified dtype. This function also provides the capability to convert any suitable existing column to a categorical type.

Python3




# importing pandas as pd
import pandas as pd
 
# sample dataframe
df = pd.DataFrame({
    'A': [1, 2, 3, 4, 5],
    'B': ['a', 'b', 'c', 'd', 'e'],
    'C': [1.1, '1.0', '1.3', 2, 5]})
 
# using dictionary to convert specific columns
convert_dict = {'A': int,
                'C': float
                }
 
df = df.astype(convert_dict)
print(df.dtypes)

Output: 

 

Method 2: Change column type into string object using DataFrame.astype() 

We can pass any Python, Numpy, or Pandas datatype to change all columns of a Dataframe to that type, or we can pass a dictionary having column names as keys and datatype as values to change the type of selected columns. 

Python3




# importing pandas as pd
import pandas as pd
 
# sample dataframe
df = pd.DataFrame({
    'A': [1, 2, 3, 4, 5],
    'B': ['a', 'b', 'c', 'd', 'e'],
    'C': [1.1, '1.0', '1.3', 2, 5]})
 
# converting all columns to string type
df = df.astype(str)
print(df.dtypes)

Output: 

 

Method 3: Change column type in pandas using DataFrame.apply() 

We can pass pandas.to_numeric, pandas.to_datetime, and pandas.to_timedelta as arguments to apply the apply() function to change the data type of one or more columns to numeric, DateTime, and time delta respectively. 

Python3




# importing pandas as pd
import pandas as pd
 
# sample dataframe
df = pd.DataFrame({
    'A': [1, 2, 3, '4', '5'],
    'B': ['a', 'b', 'c', 'd', 'e'],
    'C': [1.1, '2.1', 3.0, '4.1', '5.1']})
 
# using apply method
df[['A', 'C']] = df[['A', 'C']].apply(pd.to_numeric)
print(df.dtypes)

Output: 

 

Method 4: Change column type in pandas using DataFrame.infer_objects() 

This method attempts soft-conversion by inferring the data type of ‘object’-type columns. Non-object and unconvertible columns are left unchanged. 

Python3




# importing pandas as pd
import pandas as pd
 
# sample dataframe
df = pd.DataFrame({
    'A': [1, 2, 3, 4, 5],
    'B': ['a', 'b', 'c', 'd', 'e'],
    'C': [1.1, 2.1, 3.0, 4.1, 5.1]
}, dtype='object')
 
# converting datatypes
df = df.infer_objects()
print(df.dtypes)

Output: 

 

Method 5: Change column type in pandas using convert_dtypes()

A new DataFrame with each column’s data type changed to the best one is returned by the convert dtypes() method. 

Python3




import pandas as pd
 
data = {
  "name": ["Aman", "Hardik", pd.NA],
  "qualified": [True, False, pd.NA]
}
 
df = pd.DataFrame(data)
 
print("Original_dtypes:")
print(df.dtypes)
 
newdf = df.convert_dtypes()
 
print("New_dtypes:")
print(newdf.dtypes)

Output:

Original_dtypes:
name         object
qualified    object
dtype: object
New_dtypes:
name          string
qualified    boolean
dtype: object

My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!