2017-07-13 71 views
-4

在這個熊貓據幀代碼:'numpy.ndarray' 對象有沒有屬性 'readlines方法'

import pandas as pd 

df=pd.read_csv('data1.csv') 
data= np.array(df) 
ines = data.readlines() 

我遇到這個錯誤:

----> 5 lines = f2.readlines() 
AttributeError: 'numpy.ndarray' object has no attribute 'readlines' 

有什麼不對?

我只是希望能夠讀取csv文件與此功用:

def file2mat(test_filename, para_num): 
    fr = open(test_filename) 
    #data= pd.read_csv(test_filename) 
    #data= pd.read_csv(io.StringIO(u"" + data.to_csv(header=None,index=False)), header=None) 
    #fr= data.values 
    lines = fr.readlines() 
    print lines 
    line_nums = len(lines) 
    result_mat = np.zeros((line_nums, para_num)) 
    class_label = [] 
    for i in range(line_nums): 
     line = lines[i].strip() 
     item_mat = line.split(',') 
     result_mat[i, :] = item_mat[: para_num] 
     class_label.append(item_mat[-1]) class_label 
    fr.close() 
    return result_mat, class_label 
+1

'readlines'是一個打開文件的方法。 'data'是一個數組,但我認爲有更好的方法從數據框中獲取數組('.values'方法?) – hpaulj

+0

你究竟想要做什麼 – snapcrack

+0

'pd.read_csv',讀取和解析文件,創建一個熊貓數據框。你可以直接使用它,或者用數據框方法提取一個numpy數組。假設文件格式正確,這應該是讀取csv文件的最快方式。你只需要瞭解一些關於數據框的內容。 – hpaulj

回答

0

readlines是文件對象的一個​​方法,但不是numpy的數組。按照熊貓documentation瞭解如何使用它。如果你想逐行閱讀csv文件,那麼使用熊貓是沒有用的。你可以堅持open的方法。

content = [] 
with open('data1.csv') as fp: 
    content = fp.readlines() 

這應該足以在你的情況,現在名單content有文件的所有行。

+0

謝謝,它的作品〜 –

相關問題