类型错误:删除列时'DataFrame'对象不可调用



cols中,我想在breast_cancer_df中删除与最后一列对应的class列。但我得到'DataFrame' object is not callable错误。

import numpy as np
import seaborn as sns; sns.set(style="ticks", color_codes=True)
import sklearn.datasets
import pandas as pd
breast_cancer = sklearn.datasets.load_breast_cancer()
breast_cancer_df = pd.DataFrame(
data= np.c_[breast_cancer.data, [breast_cancer.target_names[v] for v in breast_cancer.target]],
columns= list(breast_cancer.feature_names).append('class'))
cols = breast_cancer_df(columns=breast_cancer_df.columns[-1], axis=1, inplace=True)
breast_cancer_df[cols] = breast_cancer_df[cols].apply(pd.to_numeric)
g = sns.pairplot(breast_cancer_df, hue='class')
> --------------------------------------------------------------------------- TypeError                                 Traceback (most recent call
> last) <ipython-input-224-76d71f9352d8> in <module>
>       3  data= np.c_[breast_cancer.data, [breast_cancer.target_names[v] for v in breast_cancer.target]],
>       4  columns= list(breast_cancer.feature_names).append('class'))
> ----> 5 cols = breast_cancer_df(columns=breast_cancer_df.columns[-1], axis=1, inplace=True)
>       6 breast_cancer_df[cols] = breast_cancer_df[cols].apply(pd.to_numeric)
>       7 g = sns.pairplot(breast_cancer_df, hue='class')
> 
> TypeError: 'DataFrame' object is not callable

语法/逻辑有几个层次是错误的:cols = breast_cancer_df(columns=breast_cancer_df.columns[-1], axis=1, inplace=True)

  1. 数据帧不是函数,不能使用breast_cancer_df(...)。我想你想在这里切片:breast_cancer_df[...]或使用drop方法:breast_cancer_df.drop(...)
  2. drop(...)中不需要合并columns=...axis=1
  3. 如果您在drop(...)中使用inplace=True,这将不输出任何内容。捕获cols中的输出是没有意义的。
  4. 使用

:

breast_cancer_df = breast_cancer_df.iloc[:, :-1]

或:

breast_cancer_df = breast_cancer_df.drop(columns=['class'])

NB。最好不要使用inplace,因为它可能在将来被弃用

最新更新