这种类型的数据包含正负整数,该文件具有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
我试图通过在文件中查找某种错误的格式来解决该问题,但是它没有解决问题。
答案 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]
希望我的回答能解决您的问题,谢谢。