AttributeError:“numpy.ndarray”对象没有属性“columns”

2024-09-27 09:23:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图创建一个函数来删除彼此高度相关的特性。但是,我得到了错误''AttributeError: 'numpy.ndarray' object has no attribute 'columns' '' ...

我只想打电话给熊猫看列数。下一步我能做什么?

import pandas as pd
import numpy as np

def remove_features_identical(DataFrame,data_source):
    n=len(DataFrame.columns)
    print 'dealing with %d features of %s data......... \n' % (n,data_source)
    remove_ind = []
    R = np.corrcoef(DataFrame.T)
    for i in range(n-1):
        for j in range(i+1,n):
            if R[i,j]==1:
                remove_ind.append(j)    

    DataFrame.drop(remove_ind, axis=1, inplace=True)
    DataFrame.drop(remove_ind, axis=1, inplace=True)
    print ('deleting %d columns with correration factor >0.99') % ( len(remove_ind))
    return DataFrame

if __name__ == "__main__":
    # load data and initialize y and x from train set and test set
    df_train = pd.read_csv('train.csv')
    df_test = pd.read_csv('test.csv')
    y_train=df_train['TARGET'].values
    X_train =df_train.drop(['ID','TARGET'], axis=1).values
    y_test=[]
    X_test = df_test.drop(['ID'], axis=1).values

    # delete identical feartures in raw data
    X_train = remove_features_identical(X_train,'train set')
    X_test = remove_features_identical(X_test,'test set')

Tags: columnscsvtestdataframedfdatatrainremove
1条回答
网友
1楼 · 发布于 2024-09-27 09:23:55

检查熊猫的文件,但我想

X_train =df_train.drop(['ID','TARGET'], axis=1).values

.values返回一个numpy数组,而不是Pandas数据帧。数组没有columns属性。

remove_features_identical-如果您传递一个数组,请确保您只使用数组而不是数据帧功能。否则,请确保向其传递数据帧。也不要使用像DataFrame这样的变量名。

相关问题 更多 >

    热门问题