python - 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'
我认为这是因为版本差异,但我无法处理。
解决方案
df.set_axis
如文档中所述,已在 0.21.0 版本中更改:
在 0.21.0 版更改:签名现在是标签和轴,与熊猫 API 的其余部分一致。以前,轴和标签参数分别是第一个和第二个位置参数。
查看旧版本(确切地说是 0.15.2)时,语法是 DataFrame.set_axis(axis, labels)
:
因此,您可以反转标签和轴参数并删除inplace
arg,因为您的版本尚不支持它,并将其分配回原始数据框:
改变:
energy.set_axis(columnnames, axis=1, inplace=True)
到:
energy = energy.set_axis(axis=1, labels=columnnames)
推荐阅读
- jquery - 在 jQuery .animate 中使用 css 变量
- oracle - 如何在 oracle 中增加数据库网络数据包大小
- javascript - 将来自 API 的 img 显示为 Stream
- assembly - Mips:在 2 行中打印多个值
- regex - 用于重复数字系列和数字范围的正则表达式(例如 3 位数字和 3 位数字范围)
- elasticsearch - 如何限制对弹性搜索中的文档的访问?
- flutter - 如何在 Flutter 中将数据存储为对象
- resttemplate - 使用 Spring Cloud Sleuth 在 RestTemplate-instrumented spans 中有哪些标签可用
- r - 删除属于某个值范围的观测值
- math - 这是在代码中呈现公式的正确方法吗