计算熊猫列的滞后值的日志

时间:2020-03-21 15:22:26

标签: python python-3.x pandas

我想获取列的滞后值的日志除以熊猫中的该列。

有一种简单的方法,可以通过添加一个新的列来做到这一点:

import pandas as pd
from numpy import log

df = pd.DataFrame({'reading': [2,3,4,5,6,7,8]})

df['lagged'] = df.reading.shift(1)
df['log'] = df.apply(lambda x: log(x['lagged']/ x['reading']), axis=1)

我想知道是否有一种更简单的方法,而无需添加新列。

1 个答案:

答案 0 :(得分:0)

是的,没有必要添加新列,这里的apply也是多余的。划分Series.shift列,然后将log传递到Series以提高性能:

df['log'] = log(df.reading.shift() / df.reading)
print (df)
   reading       log
0        2       NaN
1        3 -0.405465
2        4 -0.287682
3        5 -0.223144
4        6 -0.182322
5        7 -0.154151
6        8 -0.133531
相关问题