gpt4 book ai didi

python - 平方变量在索引之外

转载 作者:行者123 更新时间:2023-12-05 07:02:41 25 4
gpt4 key购买 nike

这篇文章的一个变体,没有详细的回溯,已经在大约两个小时前发布在 SO 中。此版本包含整个回溯。)

我正在运行 StatsModels 以从普通最小二乘法 (OLS) 中获取参数估计值。数据处理和特定于模型的命令如下所示。当我使用 import statsmodels.formula.api 作为 smas 操作 api 时,OLS 会按预期工作(在我以编程方式删除大约 15 行之后),给出直观的结果。但是,当我切换到 import statsmodels.api as sm 作为绑定(bind) api 时,几乎没有更改代码,事情就崩溃了,Python 解释器触发了一个错误,指出“inc_2 不在索引中”。请注意,inc_2 是在两次模型运行中将数据帧读入 StatsModels 之后计算的:但是第一次运行成功,但第二次运行失败。 (顺便说一句,p_c_inc_18是人均收入,inc_2是前者的平方,inc_2是二次方的进攻元素。)

import pandas as pd 
import numpy as np
import statsmodels.api as sm
%matplotlib inline import
matplotlib.pyplot as plt
import seaborn as sns
sns.set(style="whitegrid") eg=pd.read_csv(r'C:/../../../une_edu_pipc_06.csv') pd.options.display.precision = 3
plt.rc("figure", figsize=(16,8))
plt.rc("font", size=14)
sm_col = eg["lt_hsd_17"] + eg["hsd_17"]
eg["ut_hsd_17"] = sm_col
sm_col2 = eg["sm_col_17"] + eg["col_17"] eg["bnd_hsd_17"] = sm_col2
eg["d_09"]= eg["Rate_09"]-eg["Rate_06"]
eg["d_10"]= eg["Rate_10"]-eg["Rate_06"] inc_2=eg["p_c_inc_18"]*eg["p_c_inc_18"]
X = eg[["p_c_inc_18","ut_hsd_17","d_10","inc_2"]]
y = eg["Rate_18"]
X = sm.add_constant(X)
mod = sm.OLS(y, X)
res = mod.fit()
print(res.summary())

这是完整的回溯。

KeyError                                  Traceback (most recent call last)
<ipython-input-21-e2f4d325145e> in <module>
17 eg["d_10"]= eg["Rate_10"]-eg["Rate_06"]
18 inc_2=eg["p_c_inc_18"]*eg["p_c_inc_18"]
---> 19 X = eg[["p_c_inc_18","ut_hsd_17","d_10","inc_2"]]
20 y = eg["Rate_18"]
21 X = sm.add_constant(X)

~\Anaconda3\lib\site-packages\pandas\core\frame.py in __getitem__(self, key)
2804 if is_iterator(key):
2805 key = list(key)
-> 2806 indexer = self.loc._get_listlike_indexer(key, axis=1, raise_missing=True)[1]
2807
2808 # take() does not accept boolean indexers

~\Anaconda3\lib\site-packages\pandas\core\indexing.py in _get_listlike_indexer(self, key, axis, raise_missing)
1550 keyarr, indexer, new_indexer = ax._reindex_non_unique(keyarr)
1551
-> 1552 self._validate_read_indexer(
1553 keyarr, indexer, o._get_axis_number(axis), raise_missing=raise_missing
1554 )

~\Anaconda3\lib\site-packages\pandas\core\indexing.py in _validate_read_indexer(self, key, indexer, axis, raise_missing)
1644 if not (self.name == "loc" and not raise_missing):
1645 not_found = list(set(key) - set(ax))
-> 1646 raise KeyError(f"{not_found} not in index")
1647
1648 # we skip the warning on Categorical/Interval

KeyError: "['inc_2'] not in index"

我做错了什么?

最佳答案

您使用的语法坚持认为字符串列表是 eg 的合法索引。如果您print(eg),您会发现它没有这样的元素。我想你的意思是制作一个元素列表,每个元素由一个字符串索引。

X = [
eg["p_c_inc_18"],
eg["ut_hsd_17"],
eg["d_10"],
eg["inc_2"]
]

关于python - 平方变量在索引之外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63480288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com