改变一个列或Pandas系列的数据类型

改变一个列或Pandas系列的数据类型

系列是一个一维标签数组,能够容纳整数、字符串、浮点数、Python对象等类型的数据。轴的标签被统称为索引。

让我们看看在Pandas数据框架中改变列或系列的数据类型的程序。
方法1:使用DataFrame.astype()方法。

我们可以传递任何Python、Numpy或Pandas数据类型来改变数据框架的所有列的类型,或者我们可以传递一个以列名为键、以数据类型为值的字典来改变选定列的类型。

语法: DataFrame.astype(dtype, copy = True, errors = ’raise’, **kwargs)

让我们看看这些例子。
示例1:列的数据类型被改为 “str “对象。

# importing the pandas library
import pandas as pd
  
# creating a DataFrame
df = pd.DataFrame({'srNo': [1, 2, 3],
                   'Name': ['Geeks', 'for', 
                            'Geeks'], 
                   'id': [111, 222, 
                          333]})
# show the dataframe
print(df)
  
# show the datatypes
print(df.dtypes)

输出:

改变一个列或Pandas系列的数据类型

现在,将数据框的数据类型改为字符串。

# changing the dataframe 
# data types to string
df = df.astype(str)
  
# show the data types 
# of dataframe
df.dtypes

输出 :

改变一个列或Pandas系列的数据类型

例子2:现在,让我们把 “id “列的数据类型从 “int “改为 “str”。我们创建一个字典,并指定具有所需数据类型的列名。

# importing the pandas library
import pandas as pd
  
# creating a DataFrame
df = pd.DataFrame({'No': [1, 2, 3],
                   'Name': ['Geeks', 'for', 
                            'Geeks'], 
                   'id': [111, 222, 
                          333]})
# show the dataframe
print(df)
  
# show the datatypes
print(df.dtypes)

输出:

改变一个列或Pandas系列的数据类型

现在,将’id’列的数据类型改为字符串。

# creating a dictionary 
# with column name and data type
data_types_dict = {'id': str}
  
# we will change the data type 
# of id column to str by giving
# the dict to the astype method
df = df.astype(data_types_dict)
  
# checking the data types
# using df.dtypes method
df.dtypes

输出:

改变一个列或Pandas系列的数据类型

示例3:将 “成绩 “列的数据类型从 “float “转换为 “int”。

# import pandas library
import pandas as pd
  
# dictionary
result_data = {'name': ['Alia', 'Rima', 'Kate',
                        'John', 'Emma', 'Misa',
                        'Matt'],
        'grade': [13.5, 7.1, 11.5, 
                  3.77, 8.21, 21.22,
                  17.5],
        'qualify': ['yes', 'no', 'yes',
                    'no', 'no', 'yes', 
                    'yes']}
  
# create a dataframe
df = pd.DataFrame(result_data)
  
# show the dataframe
print(df)
  
#show the datatypes
print(df.dtypes)

输出:

改变一个列或Pandas系列的数据类型

现在,我们将 “grade “列的数据类型从 “float “转换为 “int”。

# convert data type of grade column 
# into integer
df.grade = df.grade.astype(int)
  
# show the dataframe
print(df)
  
# show the datatypes
print(df.dtypes)

输出:

改变一个列或Pandas系列的数据类型

方法2:使用Dataframe.apply()方法。

我们可以将pandas.to_numeric、pandas.to_datetime和pandas.to_timedelta作为参数传递给apply()函数,将一个或多个列的数据类型分别改为数值、日期和时间。

语法: Dataframe/Series.apply(func, convert_dtype=True, args=())

返回:应用函数/操作后的数据框架/系列。

让我们看看这个例子。

例子:将 “B “列的数据类型从 “字符串 “转换成 “int”。

# importing pandas as pd 
import pandas as pd 
    
# sample dataframe 
df = pd.DataFrame({ 
    'A': ['a', 'b', 'c', 
          'd', 'e'], 
    'B': [12, 22, 35,
          '47', '55'], 
    'C': [1.1, '2.1', 3.0,
          '4.1', '5.1'] }) 
  
# show the dataframe
print(df)
  
# show the data types
# of all columns
df.dtypes

输出:

改变一个列或Pandas系列的数据类型

现在,我们将列 “B “的数据类型转换成 “int “类型。

# using apply method 
df[['B']] = df[['B']].apply(pd.to_numeric) 
  
# show the data types
# of all columns
df.dtypes

输出:

改变一个列或Pandas系列的数据类型

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程