2017-12-17 1 views
0

Ich habe einen Pandas-Datenrahmen, der den Dateipfad zu .wav Daten enthält. Kann ich Pandas DataFrame.plot() Funktion verwenden, um die referenzierten Daten zu plotten?Call Pandas Plot-Funktion für den Pfad Eintrag

Beispiel:

typische Nutzung: df.plot()

, was ich versuche zu tun: df.plot(df.path_to_data) ???

Ich vermute, eine Kombination von apply und lambda wird den Trick machen, aber ich bin nicht sehr vertraut mit diesen Tools.

+0

Wenn Sie Daten über 'df.plot' plotten möchten, muss es in Erinnerung sein. Alternativ finden Sie unter diesem Link eine Alternative mit 'pylab': https://stackoverflow.com/a/11249430/4909087 –

+0

Wenn Ihre Frage beantwortet wurde, bitte [akzeptieren Sie die hilfreichste Antwort] (https://stackoverflow.com/help/someone-answers), indem Sie auf das graue Häkchen daneben klicken und es grün schalten. Vielen Dank! –

Antwort

1

Nein, das ist nicht möglich. plot ist die Funktion erster Ordnung, die auf pd.DataFrame Objekte funktioniert. Hier wäre df das Gleiche. Was würden Sie tun müssen, ist

  1. Legen Sie die Datenrahmen pd.read_* (in der Regel, pd.read_csv(file)) und weisen df
  2. Jetzt Anruf df.plot

So in der Zusammenfassung, die Sie brauchen -

df = pd.read_csv(filename) 
... # some processing here (if needed) 
df.plot() 

Was die Frage betrifft, ob dies möglich ist, "ohne Daten in den Speicher zu laden" ... können Sie keine Daten plotten, die sich nicht im Speicher befinden. Wenn Sie möchten, können Sie limit tha number of rows you read, oder Sie können es effizient laden, durch loading it in chunks. Sie können auch Code in aggregate/summarise data oder sample it schreiben.

+0

Dies wird die Daten direkt in die DF laden, richtig? Das könnte furchtbar groß sein ... – ConfusinglyCuriousTheThird

+0

@ConfusinglyCuriousTheThird Einige nützliche Links zu meiner Antwort hinzugefügt. –

+0

Überprüfen Sie jetzt Ihre Lösung, danke – ConfusinglyCuriousTheThird

1

Ich glaube, Sie müssen zuerst erstellen DataFrame offensichtlich von read_csv und dann DataFrame.plot:

pd.read_csv('path_to_data').plot() 

Aber wenn Bedarf Grundstück DataFrame s von path s aus Spalte in DataFrame erstellt:

df.path_to_data.apply(lambda x: pd.read_csv(x).plot()) 

Oder verwenden Sie die benutzerdefinierte Funktion:

def f(x): 
    pd.read_csv(x).plot() 

df.path_to_data.apply(f) 

oder benutzen Schleife:

for x in df.path_to_data: 
    pd.read_csv(x).plot() 
Verwandte Themen