AttributeError: 'numpy.ndarray' object has no attribute 'drop'

AttributeError: 'numpy.ndarray' object has no attribute 'drop'

我正在尝试删除 pandas 数据框的前 24 行。

通过网络搜索,我相信最好的方法是使用 pandas 'drop' 函数。

但是,每当我尝试使用它时,都会收到错误消息:

AttributeError: 'numpy.ndarray' object has no attribute 'drop'

这就是我创建 pandas 数据框的方式:

import pandas as pd 
import numpy as np
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler
%matplotlib inline
import os
cwd = os.getcwd()

df = pd.read_csv('C:/Users/.../Datasets/Weather/temperature4.csv')

然后:

df.fillna(df.mean())
df.dropna()

我的数据框的头部看起来像这样:

然后:

df = StandardScaler().fit_transform(df)
df.drop(df.index[0, 23], inplace=True)

这是我得到属性错误的地方。

不确定我应该如何删除数据框的前 24 行。

(这一切都是在我本地机器上的 Jupyter notebook 上使用 Python 3 完成的)

问题出在下面一行:

df = StandardScaler().fit_transform(df) 

它 returns 一个 numpy 数组 (see docs),它没有 drop 函数。 您必须先将其转换为 pd.DataFrame

new_df = pd.DataFrame(StandardScaler().fit_transform(df), columns=df.columns, index=df.index)