2017-07-13 4 views
-4

In diesem Pandas Datenrahmen Code:'numpy.ndarray' Objekt hat kein Attribut 'readlines'

import pandas as pd 

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

ich diesen Fehler getroffen haben:

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

Was ist los?

Ich möchte nur in der Lage sein, eine CSV-Datei mit diesem fuction zu lesen:

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' ist eine Methode einer geöffneten Datei. 'data' ist ein Array, obwohl ich denke, es gibt bessere Möglichkeiten, ein Array aus einem Datenrahmen (' .values' Methode?) – hpaulj

+0

was genau versuchen Sie zu tun – snapcrack

+0

'pd.read_csv', liest und analysiert die Datei und erstellt eine 'Pandas' Datenrahmen. Sie können das verwenden, wie es ist, oder ein numpy Array mit Datenrahmenmethoden extrahieren. Vorausgesetzt, die Datei ist richtig gebildet, sollte dies der schnellste Weg sein, CSV-Datei zu lesen. Sie müssen nur etwas über Datenrahmen verstehen. – hpaulj

Antwort

0

readlines ein Verfahren zum Dateiobjekt ist aber nicht von numpy Array. Folgen Sie den Pandas documentation, um zu sehen, wie Sie es benutzen können. Wenn Sie die CSV-Datei Zeile für Zeile lesen möchten, dann ist es nicht sinnvoll Pandas zu verwenden. Sie können bei open Methode bleiben.

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

Dies sollte alle in Ihrem Fall und jetzt die Liste genug sein content hat die Zeilen Ihrer Datei.

+0

Danke, es funktioniert ~ –

Verwandte Themen