{"id":7058,"date":"2023-11-01T15:27:04","date_gmt":"2023-11-01T09:57:04","guid":{"rendered":"https:\/\/python-programs.com\/?p=7058"},"modified":"2023-11-10T12:11:53","modified_gmt":"2023-11-10T06:41:53","slug":"pandas-change-data-type-of-single-or-multiple-columns-of-dataframe-in-python","status":"publish","type":"post","link":"https:\/\/python-programs.com\/pandas-change-data-type-of-single-or-multiple-columns-of-dataframe-in-python\/","title":{"rendered":"Pandas : Change data type of single or multiple columns of Dataframe in Python"},"content":{"rendered":"
In this article we will see how we can change the data type of a single or multiple column of Dataframe in Python.<\/p>\n
We will use where Arguments:<\/p>\n Returns:<\/strong> If copy argument is true, new Series object with updated type is returned.<\/p>\n We can change data type of a column a column e.g.\u00a0 Let’s try changing data type of ‘Age’ column from int64 to float64. For this we have to write Float64 in Let’s try to change the data type of ‘Height’ column to string i.e. Object type. As we know by default value of astype() was True, so it returns a copy of passed series with changed Data type which will be assigned to To change the datatype of multiple column in Dataframe we will use Arguments:<\/p>\n Returns:<\/strong> If copy argument is true, new Series object with updated type is returned.<\/p>\n Let’s try to convert columns ‘Age’ & ‘Height of int64 data type to float64 & string respectively. We will pass a Dictionary to Using Want to expert in the python programming language? Exploring\u00a0Python Data Analysis using Pandas<\/a>\u00a0tutorial changes your knowledge from basic to advance level in python concepts.<\/p>\n Read more Articles on Python Data Analysis Using Padas \u2013 Modify a Dataframe<\/strong><\/p>\n Changeing data type of single or multiple columns of Dataframe in Python In this article we will see how we can change the data type of a single or multiple column of Dataframe in Python. Change Data Type of a Single Column : We will use series.astype() to change the data type of columns Syntax:- …<\/p>\nseries.astype()<\/code> to change the data type of columns<\/p>\n
Syntax<\/u>:- Series.astype(self, dtype, copy=True, errors='raise', **kwargs)<\/pre>\n
\n
import pandas as sc\r\n# List of Tuples\r\nstudents = [('Rohit', 34, 'Swimming', 155) ,\r\n ('Ritik', 25, 'Cricket' , 179) ,\r\n ('Salim', 26, 'Music', 187) ,\r\n ('Rani', 29,'Sleeping' , 154) ,\r\n ('Sonu', 17, 'Singing' , 184) ,\r\n ('Madhu', 20, 'Travelling', 165 ),\r\n ('Devi', 22, 'Art', 141)\r\n ]\r\n# Create a DataFrame object with different data type of column\r\nstudObj = sc.DataFrame(students, columns=['Name', 'Age', 'Hobby', 'Height'])\r\nprint(studObj)\r\nprint(studObj.dtypes)\r\n<\/pre>\n
Output :\r\nName\u00a0 Age\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Hobby\u00a0 Height\r\n0\u00a0 Rohit\u00a0\u00a0 34\u00a0\u00a0\u00a0 Swimming\u00a0\u00a0\u00a0\u00a0 155\r\n1\u00a0 Ritik\u00a0\u00a0 25\u00a0\u00a0\u00a0\u00a0 Cricket\u00a0\u00a0\u00a0\u00a0 179\r\n2\u00a0 Salim\u00a0\u00a0 26\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Music\u00a0\u00a0\u00a0\u00a0 187\r\n3\u00a0\u00a0 Rani\u00a0\u00a0 29\u00a0\u00a0\u00a0 Sleeping\u00a0\u00a0\u00a0\u00a0 154\r\n4\u00a0\u00a0 Sonu\u00a0\u00a0 17\u00a0\u00a0\u00a0\u00a0 Singing\u00a0\u00a0\u00a0\u00a0 184\r\n5\u00a0 Madhu\u00a0\u00a0 20\u00a0 Travelling\u00a0\u00a0\u00a0\u00a0 165\r\n6\u00a0\u00a0 Devi\u00a0\u00a0 22\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Art\u00a0\u00a0\u00a0\u00a0 141\r\n\r\nName\u00a0\u00a0\u00a0\u00a0\u00a0 object\r\nAge\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 int64\r\nHobby\u00a0\u00a0\u00a0\u00a0 object\r\nHeight\u00a0\u00a0\u00a0\u00a0 int64\r\ndtype: object<\/pre>\n
Change data type of a column from int64 to float64 :<\/h3>\n
astype()<\/code> which will get reflected in dataframe.<\/p>\n
import pandas as sc\r\n# List of Tuples\r\nstudents = [('Rohit', 34, 'Swimming', 155) ,\r\n ('Ritik', 25, 'Cricket' , 179) ,\r\n ('Salim', 26, 'Music', 187) ,\r\n ('Rani', 29,'Sleeping' , 154) ,\r\n ('Sonu', 17, 'Singing' , 184) ,\r\n ('Madhu', 20, 'Travelling', 165 ),\r\n ('Devi', 22, 'Art', 141)\r\n ]\r\n# Create a DataFrame object with different datatype of column\r\nstudObj = sc.DataFrame(students, columns=['Name', 'Age', 'Hobby', 'Height'])\r\n# Change data type of column 'Age' to float64\r\nstudObj['Age'] = studObj['Age'].astype('float64')\r\nprint(studObj)\r\nprint(studObj.dtypes)\r\n<\/pre>\n
Output :\r\nName\u00a0\u00a0 Age\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Hobby\u00a0 Height\r\n0\u00a0 Rohit\u00a0 34.0\u00a0\u00a0\u00a0 Swimming\u00a0\u00a0\u00a0\u00a0 155\r\n1\u00a0 Ritik\u00a0 25.0\u00a0\u00a0\u00a0\u00a0 Cricket\u00a0\u00a0\u00a0\u00a0 179\r\n2\u00a0 Salim\u00a0 26.0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Music\u00a0\u00a0\u00a0\u00a0 187\r\n3\u00a0\u00a0 Rani\u00a0 29.0\u00a0\u00a0\u00a0 Sleeping\u00a0\u00a0\u00a0\u00a0 154\r\n4\u00a0\u00a0 Sonu\u00a0 17.0\u00a0\u00a0\u00a0\u00a0 Singing\u00a0\u00a0\u00a0\u00a0 184\r\n5\u00a0 Madhu\u00a0 20.0\u00a0 Travelling\u00a0\u00a0\u00a0\u00a0 165\r\n6\u00a0\u00a0 Devi\u00a0 22.0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Art\u00a0\u00a0\u00a0\u00a0 141\r\nName\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 object\r\nAge\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 float64\r\nHobby\u00a0\u00a0\u00a0\u00a0\u00a0 object\r\nHeight\u00a0\u00a0\u00a0\u00a0\u00a0 int64\r\ndtype: object<\/pre>\n
Change data type of a column from int64 to string :<\/h3>\n
studObj['Height'].<\/code><\/p>\n
import pandas as sc\r\n# List of Tuples\r\nstudents = [('Rohit', 34, 'Swimming', 155) ,\r\n ('Ritik', 25, 'Cricket' , 179) ,\r\n ('Salim', 26, 'Music', 187) ,\r\n ('Rani', 29,'Sleeping' , 154) ,\r\n ('Sonu', 17, 'Singing' , 184) ,\r\n ('Madhu', 20, 'Travelling', 165 ),\r\n ('Devi', 22, 'Art', 141)\r\n ]\r\nstudObj = sc.DataFrame(students, columns=['Name', 'Age', 'Hobby', 'Height'])\r\n# Change data type of column 'Marks' from int64 to float64\r\nstudObj['Age'] = studObj['Age'].astype('float64')\r\n# Change data type of column 'Marks' from int64 to Object type or string\r\nstudObj['Height'] = studObj['Height'].astype('object')\r\nprint(studObj)\r\nprint(studObj.dtypes)\r\n<\/pre>\n
Output :\r\nName\u00a0\u00a0 Age\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Hobby Height\r\n0\u00a0 Rohit\u00a0 34.0\u00a0\u00a0\u00a0 Swimming\u00a0\u00a0\u00a0 155\r\n1\u00a0 Ritik\u00a0 25.0\u00a0\u00a0\u00a0\u00a0 Cricket\u00a0\u00a0\u00a0 179\r\n2\u00a0 Salim\u00a0 26.0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Music\u00a0\u00a0\u00a0 187\r\n3\u00a0\u00a0 Rani\u00a0 29.0\u00a0\u00a0\u00a0 Sleeping\u00a0\u00a0\u00a0 154\r\n4\u00a0\u00a0 Sonu\u00a0 17.0\u00a0\u00a0\u00a0\u00a0 Singing\u00a0\u00a0\u00a0 184\r\n5\u00a0 Madhu\u00a0 20.0\u00a0 Travelling\u00a0\u00a0\u00a0 165\r\n6\u00a0\u00a0 Devi\u00a0 22.0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Art\u00a0\u00a0\u00a0 141\r\nName\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 object\r\nAge\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 float64\r\nHobby\u00a0\u00a0\u00a0\u00a0\u00a0 object\r\nHeight\u00a0\u00a0\u00a0\u00a0 object\r\ndtype: object<\/pre>\n
Change Data Type of Multiple Columns in Dataframe :<\/h3>\n
DataFeame.astype()<\/code> which can be applied for whole dataframe or selected columns.<\/p>\n
Synatx:- DataFrame.astype(self, dtype, copy=True, errors='raise', **kwargs)<\/pre>\n
\n
Change Data Type of two Columns at same time :<\/h3>\n
Dataframe.astype()<\/code> where it contain column name as keys and new data type as values.<\/p>\n
import pandas as sc\r\n# List of Tuples\r\nstudents = [('Rohit', 34, 'Swimming', 155) ,\r\n ('Ritik', 25, 'Cricket' , 179) ,\r\n ('Salim', 26, 'Music', 187) ,\r\n ('Rani', 29,'Sleeping' , 154) ,\r\n ('Sonu', 17, 'Singing' , 184) ,\r\n ('Madhu', 20, 'Travelling', 165 ),\r\n ('Devi', 22, 'Art', 141)\r\n ]\r\n# Create a DataFrame object with different datatype of column\r\nstudObj = sc.DataFrame(students, columns=['Name', 'Age', 'Hobby', 'Height'])\r\n# Convert the data type of column Age to float64 & column Marks to string\r\nstudObj = studObj.astype({'Age': 'float64', 'Height': 'object'})\r\nprint(studObj)\r\nprint(studObj.dtypes)\r\n<\/pre>\n
Output :\r\nName\u00a0\u00a0 Age\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Hobby Height\r\n0\u00a0 Rohit\u00a0 34.0\u00a0\u00a0\u00a0 Swimming\u00a0\u00a0\u00a0 155\r\n1\u00a0 Ritik\u00a0 25.0\u00a0\u00a0\u00a0\u00a0 Cricket\u00a0\u00a0\u00a0 179\r\n2\u00a0 Salim\u00a0 26.0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Music\u00a0\u00a0\u00a0 187\r\n3\u00a0\u00a0 Rani\u00a0 29.0\u00a0\u00a0\u00a0 Sleeping\u00a0\u00a0\u00a0 154\r\n4\u00a0\u00a0 Sonu\u00a0 17.0\u00a0\u00a0\u00a0\u00a0 Singing\u00a0\u00a0\u00a0 184\r\n5 Madhu\u00a0 20.0\u00a0 Travelling\u00a0\u00a0\u00a0 165\r\n6\u00a0\u00a0 Devi\u00a0 22.0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Art\u00a0\u00a0\u00a0 141\r\nName\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 object\r\nAge\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 float64\r\nHobby\u00a0\u00a0\u00a0\u00a0\u00a0 object\r\nHeight\u00a0\u00a0\u00a0\u00a0 object\r\ndtype: object<\/pre>\n
Handle errors while converting Data Types of Columns :<\/h3>\n
astype()<\/code> to convert either a column or multiple column we can’t pass the content which can’t be typecasted. Otherwise error will be produced.<\/p>\n
import pandas as sc\r\n# List of Tuples\r\nstudents = [('Rohit', 34, 'Swimming', 155) ,\r\n ('Ritik', 25, 'Cricket' , 179) ,\r\n ('Salim', 26, 'Music', 187) ,\r\n ('Rani', 29,'Sleeping' , 154) ,\r\n ('Sonu', 17, 'Singing' , 184) ,\r\n ('Madhu', 20, 'Travelling', 165 ),\r\n ('Devi', 22, 'Art', 141)\r\n ]\r\n# Create a DataFrame object with different datatype of column\r\nstudObj = sc.DataFrame(students, columns=['Name', 'Age', 'Hobby', 'Height'])\r\n# Trying to change dataype of a column with unknown dataype\r\ntry:\r\n studObj['Name'] = studObj['Name'].astype('xyz')\r\nexcept TypeError as ex:\r\n print(ex)\r\n\r\n<\/pre>\n
Output :\r\ndata type \"xyz\" not understood<\/pre>\n
\n