本文介绍了diff()的 pandas 反转的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我已经计算出一系列连续值之间的差异,但是我无法使用diffinv()
来反转/取消它们的差异:
I have calculated the differences between consecutive values in a series, but I cannot reverse / undifference them using diffinv()
:
ds_sqrt = np.sqrt(ds)
ds_sqrt = pd.DataFrame(ds_sqrt)
ds_diff = ds_sqrt.diff().values
我该如何区分呢?
推荐答案
您可以通过numpy
执行此操作.算法由@Divakar提供.
You can do this via numpy
. Algorithm courtesy of @Divakar.
当然,您需要知道系列中的第一项才能起作用.
Of course, you need to know the first item in your series for this to work.
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
这篇关于diff()的 pandas 反转的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!