Как получить доступ к предыдущему значению при использовании DataFrame.apply в python? - PullRequest
0 голосов
/ 02 апреля 2020

это мой код

_d=pd.DataFrame([[1,'foo'],[2,'bar'],[3,'kraig'],[4,'tar']],columns=['roll no','name'],index=[100,200,300,400])

_d.apply(lambda x:print(x['roll no'],axis=1)

я хочу умножить мой бросок нет по сравнению с предыдущим rollno, что-то вроде этого

roll no   hidden logic  result
===============================
1         1*1             1
2         2*1             2
3         3*2             6
4         4*3             12

как мне это сделать?

я знаю, что могу сделать что-то подобное

for i in range(1, len(df)):
    df.loc[i, 'result'] = df.loc[i-1, 'roll no'] * df.loc[i, 'roll no']

, но приведенные выше логики c не гарантируют, если результат соответствует умножению предыдущей строки

1 Ответ

1 голос
/ 02 апреля 2020

Нееееееееееееет петли! Это pandas ?

df['hidden logic'] = df['roll no'] * df['roll no'].shift(fill_value=1)
...