我有一个 pandas 系列 s1,我想创建一个新系列 s2,方法是应用一个函数,该函数需要两个输入来创建一个新值。此函数将应用于 s1 上的 2 值窗口。结果系列 s2 的值应该比 s1 少一个。有很多方法可以做到这一点,但我正在寻找一种非常有效的方法。这是在 Linux 上,我目前正在运行 python 2.7 和 3.4 以及 pandas 15.2,但如果有必要我可以更新 pandas。这是我的问题的简化。我的系列由表示为弦乐的音高组成。
import pandas
s1 = pandas.Series(['C4', 'E-4', 'G4', 'A-4')
我想使用这个功能:
def interval_func(event1, event2):
ev1 = music21.note.Note(event1)
ev2 = music21.note.Note(event2)
intrvl = music21.interval.Interval(ev1, ev2)
return intrvl.name
在 s1 和 s1 的转换版本上,获得以下系列:
s2 = pandas.Series(['m3', 'M3', 'm2'])