diff()的不同用法会产生不同的结果。为什么和它们代表什么?

时间:2019-03-30 06:19:55

标签: python pandas jupyter-notebook

/tmp函数的不同用法在我的分析中得出不同的结果。为什么会这样,它们的含义对我来说还不太清楚。有帮助吗?

我正在对Jupyter Notebook中的行为实验进行分析。对于每位参与者,我都有试验编号的数据。播种和收获的苹果,大米和柚木。我正在尝试对“柚木份额”进行平滑化和归一化(这是一个农业模拟游戏,而“柚木份额”是在每个试验中播种的柚木和收获的柚木之间的差异),然后找出它们在试验之间的差异。但是,当我以两种不同的方式使用diff()时,会产生两种不同的结果。为什么会这样?

方案1:

diff()

在这里,通过平滑然后归一化然后取'diff()'来计算df 产量: 情节= plot of teak share

方案2:

#working out correlation for participant Parika

name = 'Parika'
fname = name + '.xlsx' 
data = pd.read_excel(fname)
data.columns = data.columns.str.rstrip()

data['apple-share'] =  [ i for i in np.cumsum(data[:]['Apples sown'].values - data[:]['Apples reaped'].values).flatten()]
data['rice-share'] =  [ i for i in np.cumsum(data[:]['Rice sown'].values - data[:]['Rice reaped'].values).flatten()]
data['teak-share'] =  [ i for i in np.cumsum(data[:]['Teak sown'].values - data[:]['Teak reaped'].values).flatten()]


df = ((data['teak-share'].rolling(window=25, min_periods = 1, win_type='parzen', center=True).mean() - data['teak-share'][24:].mean())/data['teak-share'][24:].std()).diff()
df.plot(kind="line")
for x in data[data['Resource Cost']>5000]['Simulation No'].values:
    plt.axvline(x, color='red', linestyle=':', linewidth=2)
    plt.xticks(np.arange(0,120, step= 24), (data['Block'][0], data['Block'][24][0], data['Block'][48][0], data['Block'][72][0], data['Block'][96][0]))

N = range(5)
cumdev = 0
for n in N:
    cumdev = cumdev + df[data[data['Resource Cost']>5000]['Simulation No'].values + n].sum()

print(cumdev)
plt.title("Smoothed")
plt.ylabel("Teak share")
plt.xlabel("Trials")
plt.show()

此处,df的计算方法与上面相同,但没有'diff()'。计算cumdev时完成'diff()'。 产量: 情节-plot of teak share

红线表示遇到预算超支的情况。即使两种情况下的cumdev都相同,但情节却不同。我不清楚为什么会这样。请帮忙吗?

0 个答案:

没有答案