python - iterrows() :对每一行给出相同的结果
问题描述
我正在尝试为几行上的几个滞后创建自协方差。在这个例子中,我得到了两行和 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]
解决方案
您正在迭代,index, row
但您打印常量值:
for index,row in df.iterrows():
print(autocov_df.T)
autocov_df.T
不依赖于index
or 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)
请注意,您的参数命名可能会产生误导。
推荐阅读
- visual-c++ - Sudachipy Python 包在已安装时需要 Microsoft Visual C++ 14.0 或更高版本
- python - 为什么 SQLAlchemy Postgres ORM 需要 __init__(self) 作为声明性基础?
- javascript - 将小时和分钟字符串转换为纪元(unix 时间戳)
- c# - 如何修复 Unity/C# 中的 Invalid Expression Term '=' 错误?
- css - 如何左对齐默认引导程序 5 手风琴图标
- javascript - npm run build后react空白页或404页,问题出在哪里?
- python - 是否需要安装语言包才能使 Google Translate api 正常工作?
- r - 如何从df计算每n个向量的平均值
- r - 从 github 打印方法功能安装 R 包不起作用
- python - 将一列转换为行和列