Ich habe eine Pandas-Serie, s1, und ich möchte eine neue Serie, s2, durch eine Funktion, die zwei Eingaben, um einen neuen Wert zu erstellen. Diese Funktion würde auf ein 2-Wert-Fenster auf s1 angewendet werden. Die resultierende Reihe, s2, sollte einen Wert weniger als s1 haben. Es gibt viele Möglichkeiten, dies zu erreichen, aber ich suche nach einer Möglichkeit, es sehr effizient zu machen. Dies ist auf Linux und ich laufe gerade Python 2.7 und 3.4 und Pandas 15.2, obwohl ich Pandas aktualisieren kann, wenn das notwendig ist. Hier ist eine Vereinfachung meines Problems. Meine Serie besteht aus Tonhöhen, die als Streicher dargestellt werden.Machen Sie eine Pandas-Serie, indem Sie eine Funktion auf alle benachbarten Werte ausführen
import pandas
s1 = pandas.Series(['C4', 'E-4', 'G4', 'A-4')
Ich möchte diese Funktion nutzen:
def interval_func(event1, event2):
ev1 = music21.note.Note(event1)
ev2 = music21.note.Note(event2)
intrvl = music21.interval.Interval(ev1, ev2)
return intrvl.name
Auf s1 und eine verschobene Version von s1, die folgende Reihe zu bekommen:
s2 = pandas.Series(['m3', 'M3', 'm2'])
Falsches 'apply' kann einen Benutzer func oder lambda nehmen und kann 0-N params nehmen, Sie müssen Ihr Problem besser mit rohen Daten, Code und gewünschter Ausgabe definieren – EdChum