astype()方法通常用于将Pandas对象转换为指定的dtype.astype()函数。它还可以将任何合适的现有列转换为分类类型。

当我们想将特定的列数据类型转换为另一种数据类型时, 它就可以使用。我们还可以使用Python字典的输入来一次更改多个列类型。在字典中, 键标签对应于列名, 值标签对应于我们要在列中使用的新数据类型。 

句法

DataFrame.astype(dtype, copy=True, errors='raise', **kwargs)

 参数

dtype:它使用numpy.dtype或Python类型将整个pandas对象转换为相同类型。它还可以使用{col:dtype, ?}, 其中col表示列标签, 而dtype是numpy.dtype或Python类型, 用于将DataFrame的一个或多个列转换为特定于列的类型。

复制:如果copy = True, 则返回一个副本。设置copy = False时要小心, 因为对值的更改可能会传播到其他Pandas对象。

错误:对于提供的dtype, 它控制对无效数据的异常引发。

  • 引发:它允许引发异常。
  • ignore:忽略异常。错误返回原始对象。

kwargs:这是一个关键字参数, 将传递给构造函数。

 强制转换:它返回与调用方相同的类型。 

例子

import pandas as pd

a = {'col1': [1, 2], 'col2': [3, 4]}
info = pd.DataFrame(data=a)
info.dtypes
# We convert it into 'int64' type.
info.astype('int64').dtypes
info.astype({'col1': 'int64'}).dtypes

x = pd.Series([1, 2], dtype='int64')
x.astype('category')

cat_dtype = pd.api.types.CategoricalDtype(categories=[2, 1], ordered=True)
x.astype(cat_dtype)

x1 = pd.Series([1, 2])
x2 = x1.astype('int64', copy=False)
x2[0] = 10
x1  # note that x1[0] has changed too

输出

0    12
1     2
dtype: int64

pandas转数组
我们可以使用numpy.array来创建一个矩阵,当然这个矩阵可以是 N 维的,创建的时候,需要传入一个数组,数组是多少维,创建的矩阵就是多少维. 创建矩阵的时候,也可以传入第二个参数(dtype), 指定数据类型.
numpy.array
np.array(pandas)

 数组转pandas

pandas.DataFrame(numpy)

 

import numpy as np

array = np.array([[1,2,3],
                  [4,5,6],
                  [7,8,9]], dtype=np.float64)
# array([[1, 2, 3],
#        [4, 5, 6],
#        [7, 8, 9]])
type(array)
numpy.ndarray