Python 大熊猫柱滞后值的计算日志
我想得到一列的滞后值除以该列的对数 有一种简单的方法可以做到这一点,即添加一个新列,如下所示:Python 大熊猫柱滞后值的计算日志,python,python-3.x,pandas,Python,Python 3.x,Pandas,我想得到一列的滞后值除以该列的对数 有一种简单的方法可以做到这一点,即添加一个新列,如下所示: 将熊猫作为pd导入 从numpy导入日志 df=pd.DataFrame({'reading':[2,3,4,5,6,7,8]}) df['lagged']=df.reading.shift(1) df['log']=df.apply(λx:log(x['lagged']/x['reading']),轴=1) 我想知道是否有一种更简单的方法可以做到这一点,而无需添加新列。你是对的,新列不是必需的,而
将熊猫作为pd导入
从numpy导入日志
df=pd.DataFrame({'reading':[2,3,4,5,6,7,8]})
df['lagged']=df.reading.shift(1)
df['log']=df.apply(λx:log(x['lagged']/x['reading']),轴=1)
我想知道是否有一种更简单的方法可以做到这一点,而无需添加新列。你是对的,新列不是必需的,而且
apply
这里也是多余的。将ed列分开,然后将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
谢谢@jezrael!快速跟进,如何解释分母为零的情况?我可以在lambda中使用if-else结构,在else中使用np.nan,这里有类似的语法吗?@MehdiZare-Tested,然后得到
inf
或-inf
,所以在我的解决方案之后应该被nan
s替换,请检查