【发布时间】:2020-11-29 02:28:15
【问题描述】:
我下载并一直在尝试运行以下包:https://pypi.org/project/ecomplexity/#description
这也可以在 github 上找到:https://github.com/cid-harvard/py-ecomplexity
自述文件页面有一个代码应该如何工作的示例,如下所示:
from ecomplexity import ecomplexity
from ecomplexity import proximity
# Import trade data from CID Atlas
data_url = "https://intl-atlas-downloads.s3.amazonaws.com/country_hsproduct2digit_year.csv.zip"
data = pd.read_csv(data_url, compression="zip", low_memory=False)
data = data[['year','location_code','hs_product_code','export_value']]
# Calculate complexity
trade_cols = {'time':'year', 'loc':'location_code', 'prod':'hs_product_code', 'val':'export_value'}
cdata = ecomplexity(data, trade_cols)
# Calculate proximity matrix
prox_df = proximity(data, trade_cols)
我添加了import pandas as pd 以便可以读取.csv 文件并添加print(prox_df) 以提供第二个函数的结果。我希望第二个函数产生一个值矩阵,其中元素是来自任何位置的任何两个产品的最小条件概率。
但是,从自述文件页面运行此示例时,出现以下错误:
Traceback (most recent call last):
File "filepath/project.py", line 16, in <module>
prox_df = proximity(data, trade_cols)
File "filepath\venv\lib\site-packages\ecomplexity\proximity.py", line 79, in proximity
output = output.reset_index()
File "filepath\venv\lib\site-packages\pandas\core\frame.py", line 4849, in reset_index
new_obj.insert(0, name, level_values)
File "filepath\venv\lib\site-packages\pandas\core\frame.py", line 3618, in insert
self._mgr.insert(loc, column, value, allow_duplicates=allow_duplicates)
File "filepath\venv\lib\site-packages\pandas\core\internals\managers.py", line 1147, in insert
raise ValueError(f"cannot insert {item}, already exists")
ValueError: cannot insert prod, already exists
是什么导致了这个错误?我怎样才能防止这个错误发生,以便我可以使用这个包的'proximity'功能?
【问题讨论】:
标签: python pandas dataframe package valueerror