Я новичок в Пандах.
У меня есть фрейм данных, который выглядит следующим образом (только намного больше):
Horses RaceDate Position
1 RedHorse 1/2/00 2
2 BlueHorse 1/2/00 6
3 YellowHorse 1/2/00 7
4 RedHorse 15/1/00 3
Я хочу добавить столбец для предыдущих результатов. Так что мой фрейм данных может выглядеть так:
Horses RaceDate Position PrevPosition
1 RedHorse 1/2/00 2 3
2 BlueHorse 1/2/00 6 -
3 YellowHorse 1/2/00 7 -
4 RedHorse 15/1/00 3 -
Я пробовал следующее:
def prevRuns(horseName, raceDate):
horseDf = df.loc[df['Horse'] == horseName]
currentRace = horseDf.index[horseDf['RaceDate'] == raceDate]
if len(horseDf.index) >= currentRace:
return horseDf.at[currentRace+1,'Position']
else:
return 0
df['prevRun'] = df['Horse'].apply(prevRuns, raceDate = df['RaceDate'])
Но это не работает.
ValueError: Can only compare identically-labeled Series objects
Почему это не работает?
Есть ли более элегантный способ добиться того, что я пытаюсь сделать?