在Pandas中向csv写入60K行的大数据帧时出错

时间:2018-01-07 09:21:13

标签: python pandas dataframe scikit-learn

我正在尝试构建预测模型。我试图分两部分来做这件事

  1. 预处理python文件(.ipynb)中的数据并保存此预先处理的数据   将数据转换为csv文件
    1. 在步骤1模型预测(.ipynb)文件中调用此预处理文件。
  2. 预处理文件

    #saving preproccesed dataframe to  csv
    train.to_csv('C:/Users/Documents/Tesfile_Preprocessed.csv')
    
    Error 
    
    ~\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\sparse\array.py in __getitem__(self, key)
        417             return self._get_val_at(key)
        418         elif isinstance(key, tuple):
    --> 419             data_slice = self.values[key]
        420         else:
        421             if isinstance(key, SparseArray):
    
    
    
    IndexError: too many indices for array
    

    预测模型文件

    X_test=pd.read_csv('C:/Users/Documents/Tesfile_Preprocessed.csv')
    predicted_dtree = fit_decision.predict(X_test)
    

    我该如何解决这个问题

1 个答案:

答案 0 :(得分:1)

更好的方法是使用to_pickle

train.to_pickle('C:/Users/Documents/Tesfile_Preprocessed.pickle')

索引太多'意味着你给出了太多的索引值。您已经给出了2个值,因为您希望数据是2D数组。 Numpy抱怨是因为数据不是2D(它是1D或None)。

我建议您在访问之前检查数组尺寸。

self.values.shape

len(self.values) 

这与您的Pandas无关,您试图访问阵列上不存在的索引。

请尝试在导出期间更改sep

train.to_csv('C:/Users/Documents/Tesfile_Preprocessed.csv', sep='\t')