📌  相关文章
📜  'DataFrame' 对象没有属性 'as_matrix' - Python (1)

📅  最后修改于: 2023-12-03 14:38:44.405000             🧑  作者: Mango

解决''DataFrame' 对象没有属性 'as_matrix'错误

在使用 pandas 库进行数据分析时,我们常常需要将 DataFrame 对象转换为 ndarray 数组进行计算。在 pandas 0.24.0 版本及之后的版本中,DataFrame 对象的 as_matrix 方法被废弃,这可能会导致代码在运行时报错,错误信息为:'DataFrame' object has no attribute 'as_matrix'。这时我们就需要修改代码,避免使用 as_matrix 方法,使用 pandas 提供的其他方法代替。

为了解决这个问题,我们可以使用以下两种方法来进行 ndarray 数组的转换。

使用 pandas.DataFrame.values

pandas.DataFrame.values 方法可以将 DataFrame 对象转换为 ndarray 数组。具体请看下面的示例代码:

import pandas as pd

df = pd.read_csv('example.csv')
arr = df.values
使用 numpy.asarray

numpy.asarray 方法可以将 DataFrame 对象转换为 ndarray 数组。具体请看下面的示例代码:

import pandas as pd
import numpy as np

df = pd.read_csv('example.csv')
arr = np.asarray(df)

以上两种方法都可以将 DataFrame 对象转换为 ndarray 数组,二者的区别在于:pandas.DataFrame.values 返回的数组不包含行和列的标签,而 numpy.asarray 返回的数组保留了行和列的标签。

除此之外,还有一些其他的方法可以将 DataFrame 对象转换为 ndarray 数组,如 pandas.to_numpy 和 pandas.DataFrame.to_numpy。由于这些方法的底层实现都是调用 pandas.DataFrame.values 方法,因此效果是相同的,可以根据自己的喜好使用。