首页 > 解决方案 > set_axis() 为参数 'axis' 获得了多个值

问题描述

我的代码在 JupyterLab 上运行良好,但是当我尝试在 coursera 的 jupyter notebook 上运行时出错。它说“您目前正在查看此笔记本的 1.5 版。

energy = pd.read_excel('Energy Indicators.xls')
energy = energy.iloc[17:244,2:]
columnnames = ['Country', 'Energy Supply', 'Energy Supply per Capita', '% Renewable']

energy.set_axis(columnnames, axis=1, inplace=True)

energy = energy.replace('...', np.nan)
energy['Energy Supply'] = energy['Energy Supply']*1000000
dicts = {"Republic of Korea": "South Korea",
     "United States of America": "United States",
     "United Kingdom of Great Britain and Northern Ireland": "United Kingdom",
     "China, Hong Kong Special Administrative Region": "Hong Kong",
     'Bolivia (Plurinational State of)':'Bolivia',
     'Switzerland17':'Switzerland'}
energy["Country"].replace(dicts,inplace=True)
energy=energy.reset_index(drop = True)
energy

我犯了那个错误:

> TypeError: set_axis() got multiple values for argument 'axis'

我认为这是因为版本差异,但我无法处理。

标签: pythonpandasnumpyjupyter-notebook

解决方案


df.set_axis如文档中所述,已在 0.21.0 版本中更改:

在 0.21.0 版更改:签名现在是标签和轴,与熊猫 API 的其余部分一致。以前,轴和标签参数分别是第一个和第二个位置参数。

查看旧版本(确切地说是 0.15.2)时,语法是 DataFrame.set_axis(axis, labels)

因此,您可以反转标签和轴参数并删除inplacearg,因为您的版本尚不支持它,并将其分配回原始数据框:

改变:

energy.set_axis(columnnames, axis=1, inplace=True)

到:

energy = energy.set_axis(axis=1, labels=columnnames)

推荐阅读