Ane*_*esh 5 python arrays numpy python-3.x
我已经改变了值,但是我无法使用diffinv()来区别它
ds_sqrt=np.sqrt(ds)
ds_sqrt=pd.DataFrame(ds_sqrt)
ds_diff=ds_sqrt.diff().values
Run Code Online (Sandbox Code Playgroud)
谁能说出如何与众不同?
您可以通过进行操作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
Run Code Online (Sandbox Code Playgroud)
小智 6
您可以使用 pmdarima 中的 diff_inv。文档链接
# genarating random table
np.random.seed(10)
vals = np.random.randint(1, 10, 6)
df_t = pd.DataFrame({"a":vals})
#creating two columns with diff 1 and diff 2
df_t['dif_1'] = df_t.a.diff(1)
df_t['dif_2'] = df_t.a.diff(2)
df_t
a dif_1 dif_2
0 5 NaN NaN
1 1 -4.0 NaN
2 2 1.0 -3.0
3 1 -1.0 0.0
4 2 1.0 0.0
5 9 7.0 8.0
Run Code Online (Sandbox Code Playgroud)
然后创建一个函数,该函数将返回一个具有 diff 倒数值的数组。
from pmdarima.utils import diff_inv
def inv_diff (df_orig_column,df_diff_column, periods):
# Generate np.array for the diff_inv function - it includes first n values(n =
# periods) of original data & further diff values of given periods
value = np.array(df_orig_column[:periods].tolist()+df_diff_column[periods:].tolist())
# Generate np.array with inverse diff
inv_diff_vals = diff_inv(value, periods,1 )[periods:]
return inv_diff_vals
Run Code Online (Sandbox Code Playgroud)
使用示例:
# df_orig_column - column with original values
# df_diff_column - column with differentiated values
# periods - preiods for pd.diff()
inv_diff(df_t.a, df_t.dif_2, 2)
Run Code Online (Sandbox Code Playgroud)
输出:
array([5., 1., 2., 1., 2., 9.])
Run Code Online (Sandbox Code Playgroud)
Reverse diff in one line with pandas
import pandas as pd
df = pd.DataFrame([10, 15, 14, 18], columns = ['Age'])
df['Age_diff'] = df.Age.diff()
df['reverse_diff'] = df['Age'].shift(1) + df['Age_diff']
print(df)
Age Age_diff reverse_diff
0 10 NaN NaN
1 15 5.0 15.0
2 14 -1.0 14.0
3 18 4.0 18.0
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2379 次 |
最近记录: |