我该如何解决“数据中数组索引过多”的错误?

时间:2019-03-24 17:16:49

标签: python

这种类型的数据包含正负整数,该文件具有368行和143列的数组。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt 

databogota2 = pd.read_csv('datosairebogota.csv')

#List of the atributes 
list(databogota2.columns.values)

df = databogota2.drop(databogota2.columns[[0, 1]], axis=1)
df1 = df.drop(df.index[367])
df2 = df1.iloc[:,:].values

from sklearn.preprocessing import Imputer

imputer = Imputer(missing_values= np.nan, strategy='mean' , axis = 0)
imputer = imputer.fit(df2[:,0:144])
df2[:,0,144] = imputer.transform(df2[:,0,144])

#I will expect to get as output that the "nan" values become filling for     mean of the columns each.

这是它生成的错误。

Traceback (most recent call last):

File "<ipython-input-60-7cca9cc68b6f>", line 5, in <module>
df2[:,0,144] = imputer.transform(df2[:,0,144])

IndexError: too many indices for array

我试图通过在文件中查找某种错误的格式来解决该问题,但是它没有解决问题。

1 个答案:

答案 0 :(得分:0)

我认为您想要0到144列。如果我遇到了问题,那么您可以这样做来解决您的问题。

df.iloc[:,0:144]意味着您将获得列0到144的所有行。

将最后一行更改为

df2.iloc[:,0:144] = imputer.transform(df2.iloc[:,0:144])

df2.iloc[starting_index_of_row:ending_index_of_row , starting_index_of_column:ending_index_of_column]

希望我的回答能解决您的问题,谢谢。