Python Pandas DataFrame.astype()使用详解及示例 3
本系列是Python Pandas教程的一部分,您可以点击Python Pandas使用教程查看所有。
Pandas DataFrame.astype() 介绍
转换是将一种数据类型的实体转换为另一种数据类型的过程。因此,当对象或变量之类的实体被强制转换时,它将从其源类型转换为不同的类型。在 Pandas 中,这个转换过程可以通过 astype() 方法来实现。所以 astype() 方法用于将 Pandas 中的对象转换为不同的数据类型。分类类型的转换也可以从一种特定的列类型来实现。在本文中将看到有关 Pandas DataFrame.astype() 的内容。
语法和参数
下面是一个语法:
句法:
DataFrame.astype(self: ~FrameOrSeries, dtype, copy: bool = True, errors: str = 'raise')
以下是带描述的不同参数:
参数 | 描述 |
Dtype | 这里会提到要转换的数据类型。
这里可以提到 python 类型或 numpy.dtype,这将使整个对象成为一种特定的对象类型。另外 {col: dtype.. . . . . . . . } 可用于将对象的一列或多列转换为某种特定类型。 |
Copy | 当复制值设置为 true 时,将执行整个源对象的完整复制。(在将 copy 的值设置为 False 时需要格外小心,因为对值的更改可能会传播到其他 Pandas 对象)。 |
Errors | 表示是否需要引发异常。这个选项主要允许控制在异常可能有效发生的情况下是否必须引发异常。(设置error参数的值是raise或ignore时需要格外小心)。
|
Pandas DataFrame.astype() 示例
以下是以下示例:
示例#1
代码:
import pandas as pd
Core_Series = pd.Series([ 10, 20, 30, 40, 50, 60])
print(" THE CORE SERIES ")
print(Core_Series)
Transformed_Series = Core_Series.astype('float32')
print("")
print(" THE FLOAT SERIES ")
print(Transformed_Series)
输出:
代码说明:这里最初导入的是pandas库,导入的库用于创建series。series中的值以这样的方式表示,即它们是 10 到 60 的series。 astype() 方法用于将series的值从 int 类型转换为 float 类型。所以我们可以从输出 snap 中注意到整个 int 类型series都被转换为 float 类型。转换前后dataframe 的内容被打印到控制台。我们可以清楚地注意到,制定的float series 的所有值都是浮点格式。
示例#2
代码:
import pandas as pd
Core_Dataframe = pd.DataFrame({'A' : [ 1, 6, 11, 15, 21, 26],
'B' : [2, 7, 12, 17, 22, 27],
'C' : [3, 8, 13, 18, 23, 28],
'D' : [4, 9, 14, 19, 24, 29],
'E' : [5, 10, 15, 20, 25, 30]})
print(" THE CORE DATAFRAME ")
print(Core_Dataframe)
print(type(Core_Dataframe.A[0]))
Transformed_Dataframe = Core_Dataframe.astype('float32')
print("")
print(" THE FLOAT DATAFRAME ")
print(Transformed_Dataframe)
print(type(Transformed_Dataframe.A[0]))
输出:
代码说明:这里最初导入的是pandas库,导入的库用于创建shape(6,6)的dataframe。数据框中的所有列都分配有按字母顺序排列的标题。数据框中的值以这样的方式表达,即它们是 1 到 n 的序列。这里创建的dataframe被称为 core dataframe。core dataframe的数据类型被打印到控制台。接下来,使用 astype() 方法将整个dataframe从 int 类型元素转换为 float 类型。所以在 astype() 过程结束时,整个core dataframe被转换为浮点类型并命名为转换dataframe。转换后的数据类型的内容与其类型一起打印到控制台上。
示例#3
代码:
import pandas as pd
Core_Dataframe = pd.DataFrame({'A' : [ 1, 6, 11, 15, 21, 26],
'B' : [2, 7, 12, 17, 22, 27],
'C' : [3, 8, 13, 18, 23, 28],
'D' : [4, 9, 14, 19, 24, 29],
'E' : [5, 10, 15, 20, 25, 30]})
print(" THE CORE DATAFRAME ")
print(Core_Dataframe)
print(type(Core_Dataframe.A[0]))
print(type(Core_Dataframe.B[0]))
print(type(Core_Dataframe.C[0]))
print(type(Core_Dataframe.D[0]))
print(type(Core_Dataframe.E[0]))
Transformed_Dataframe_A = Core_Dataframe['A'].astype('float32')
Transformed_Dataframe_B = Core_Dataframe['B'].astype('str')
Transformed_Dataframe_C = Core_Dataframe['C'].astype('float64')
Transformed_Dataframe_D = Core_Dataframe['D'].astype('int32')
Transformed_Dataframe_E = Core_Dataframe['E'].astype('complex64')
print("")
print(" THE TRANSFORMED DATAFRAME TYPES ")
print(" THE TRANSFORMED DATAFRAME A OF FLOAT32 TYPE ")
print(Transformed_Dataframe_A)
print(type(Transformed_Dataframe_A[0]))
print("")
print(" THE TRANSFORMED DATAFRAME A OF STR TYPE ")
print(Transformed_Dataframe_B)
print(type(Transformed_Dataframe_B[0]))
print("")
print(" THE TRANSFORMED DATAFRAME A OF FLOAT64 TYPE ")
print(Transformed_Dataframe_C)
print(type(Transformed_Dataframe_C[0]))
print("")
print(" THE TRANSFORMED DATAFRAME A OF INT32 TYPE ")
print(Transformed_Dataframe_D)
print(type(Transformed_Dataframe_D[0]))
print("")
print(" THE TRANSFORMED DATAFRAME A OF COMPLEX64 TYPE ")
print(Transformed_Dataframe_E)
print(type(Transformed_Dataframe_E[0]))
输出:
代码说明:上面例子中的整个初始操作集在这里再次重复,一旦core dataframe被声明,dataframe中每一列的数据类型被打印到类型函数封装的控制台中,因此类型值每一列的信息都打印到控制台上。控制台中的每一列都被转换为不同的类型并独立存储到转换后的dataframe中,为每列转换的类型值打印在下面,
- Core_Dataframe[‘A’] 转化为 float32
- Core_Dataframe[‘B’] 转成字符串
- Core_Dataframe[‘C’] 转化为 float64
- Core_Dataframe[‘D’] 转化为 int32
- Core_Dataframe[‘E’] 转化为 complex64
每个转换后的dataframe的值和值的相应数据类型都打印到控制台上。
结论
pandas 中的 astype() 方法显示了以最灵活的方式对dataframe中的每个值应用强制转换操作的灵活性。它还描述了可以与 python pandas 编程的 astype() 方法相关联的分类转换类型集。
常见问题FAQ
- 程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
- 请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!