为了账号安全,请及时绑定邮箱和手机立即绑定

iterrows() :对每一行给出相同的结果

iterrows() :对每一行给出相同的结果

慕标琳琳 2021-09-11 20:50:31
我正在尝试为几行的几个滞后创建自协方差。在这个例子中,我得到了两行和 11 个滞后。在我的示例中,我得到了以下两行:在文本中: array([[164, 148, 152, 144, 155, 125, 153, 146, 138, 190, 192, 192],   [239, 379, 105, 150, 400, 326, 134, 441, 199, 431, 203, 425]], dtype=int64)我想获得滞后 0,1...11 的每一行的自协方差。现在,我得到了以下代码: import statsmodels as sm import numpy as np import pandas as pd df = pd.read_excel("directory\\file.xlsx")def autocov(row):    x = sm.tsa.stattools.acovf(df.T[row], unbiased=False, demean=True,     fft=None, missing='none')    autocov_df = pd.DataFrame(x)for index,row in df.iterrows():     print(x)这会向我打印以下数组:在文本中: [ 447.52083333  191.93229167   94.51041667  -26.36979167  -87.58333333   -97.90104167 -121.86458333  -54.328125    -94.47916667  -31.19270833   -12.65625      16.171875  ] [ 447.52083333  191.93229167   94.51041667  -26.36979167  -87.58333333   -97.90104167 -121.86458333  -54.328125    -94.47916667  -31.19270833  -12.65625      16.171875  ]但是,如您所见,它为两行打印了相同的值。我的代码做错了什么???这是我的首选输出:[ 447.52083333  191.93229167   94.51041667  -26.36979167  -87.58333333  -97.90104167 -121.86458333  -54.328125    -94.47916667  -31.19270833  -12.65625      16.171875  ][ 14887., -7237., 1811.,-198.5,  2903.08333333,  -3346.41666667,   1140.33333333,  -1207.25      ,  1141.08333333,  -3307.75      ,   1402.33333333,   -544.41666667]
查看完整描述

1 回答

?
拉丁的传说

TA贡献1789条经验 获得超8个赞

您正在迭代index, row但打印常量值:


for index,row in df.iterrows():

    print(autocov_df.T)

autocov_df.T不依赖于index或row。


您需要使用迭代变量来查看差异,例如:


for index,row in df.iterrows():

    y = some_function(index,row)

    print(y)

在您的示例中,您不调用autocov并且该函数中没有 return 语句:


def autocov(row):

    x = sm.tsa.stattools.acovf(df.T[row], unbiased=False, demean=True, 

    fft=None, missing='none')

    autocov_df = pd.DataFrame(x)

    return(autocov_df)


for index,row in df.iterrows():

     x = autocov(index)

     print(x)

请注意,您的参数命名可能会产生误导。


查看完整回答
反对 回复 2021-09-11
  • 1 回答
  • 0 关注
  • 233 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号