AttributeError:'numpy.ndarray'对象没有属性'drop'

Roc*_*ace 5 python attributeerror delete-row pandas

我正在尝试删除我的pandas数据帧的前24行.

在网上搜索让我相信最好的方法是使用pandas'drop'功能.

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

AttributeError: 'numpy.ndarray' object has no attribute 'drop'
Run Code Online (Sandbox Code Playgroud)

这是我创建我的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')
Run Code Online (Sandbox Code Playgroud)

然后:

df.fillna(df.mean())
df.dropna()
Run Code Online (Sandbox Code Playgroud)

我的数据帧的头部看起来像这样: 在此输入图像描述

然后:

df = StandardScaler().fit_transform(df)
df.drop(df.index[0, 23], inplace=True)
Run Code Online (Sandbox Code Playgroud)

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

不知道我该怎么做才能删除我的数据帧的前24行.

(这都是在我本地计算机上的Jupyter笔记本上使用Python 3完成的)

tob*_*ret 9

问题在于以下几行:

df = StandardScaler().fit_transform(df) 
Run Code Online (Sandbox Code Playgroud)

它返回一个numpy数组(参见docs),它没有drop函数.你必须把它转换成pd.DataFrame第一个!

new_df = pd.DataFrame(StandardScaler().fit_transform(df), columns=df.columns, index=df.index)
Run Code Online (Sandbox Code Playgroud)