diff() 的 Pandas 反转

新手上路,请多包涵

我计算了一系列连续值之间的差异,但我无法使用 diffinv() 反转/取消差异:

 ds_sqrt = np.sqrt(ds)
ds_sqrt = pd.DataFrame(ds_sqrt)
ds_diff = ds_sqrt.diff().values

我怎么能不关心这个?

原文由 Anesh 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 835
1 个回答

您可以通过 numpy 执行此操作。 @Divakar 提供的 算法。

当然,您需要知道系列中的第一项才能使其正常工作。

 df = pd.DataFrame({'A': np.random.randint(0, 10, 10)})
df['B'] = df['A'].diff()

x, x_diff = df['A'].iloc[0], df['B'].iloc[1:]
df['C'] = np.r_[x, x_diff].cumsum().astype(int)

#    A    B  C
# 0  8  NaN  8
# 1  5 -3.0  5
# 2  4 -1.0  4
# 3  3 -1.0  3
# 4  9  6.0  9
# 5  7 -2.0  7
# 6  4 -3.0  4
# 7  0 -4.0  0
# 8  8  8.0  8
# 9  1 -7.0  1

原文由 jpp 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题