使用pandas dataframe执行此操作的最佳方法是什么?我想循环遍历数据帧,并计算当前值与下一个值之间的差异,该值不同于当前值。 例如: [13,13,13,14,13,12] 将使用此方法创建一个新列 [-1,-1,-1,1,1]
答案 0 :(得分:1)
如何使用diff
计算差异,然后使用下一个非零值返回填充0:
import pandas as pd
import numpy as np
df = pd.DataFrame({"S": [13, 13, 13, 14, 13, 12]})
df.S.diff(-1).replace(0, np.nan).bfill() # replace zero with nan and apply back fill.
# 0 -1
# 1 -1
# 2 -1
# 3 1
# 4 1
# 5 NaN
# Name: S, dtype: float64