Это потому, что разница сравнивается с предыдущей строкой, а вы делите ее на второй ряд. Мы можем использовать shift
, чтобы проверить это:
df = pd.DataFrame({'value':[256.143, 256.571]})
df['percent change'] = df['value'].pct_change()
df['percent change2'] = df['value'].diff() / df['value'].shift()
Вывод
value percent change percent change2
0 256.143 NaN NaN
1 256.571 0.001671 0.001671