我得到了这个错误,我的教授没有得到,运行他为我们班级提供的相同的示例代码。我在这里或在Anaconda或Python Tutor列表中找不到解决方案。
我们正在学习基本的python,查看最简单的Pandas DataFrames并学习选择列。我们构建了一个数据帧df(5行,5列),除了一行代码之外的所有代码都可以正常工作。无效的路线是:
df[ [0,1] ]
在我的系统上,它不断地在df[ [0,1] ]
命令上抛出此KeyError。我收到了df[ [0] ]
或df[ [1] ]
的类似错误。
Traceback (most recent call last):
File "<ipython-input-7-c392a914e584>", line 1, in <module>
df[ [0,1] ]
File "C:\Users\xxxx\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\frame.py", line 1958, in __getitem__
return self._getitem_array(key)
File "C:\Users\xxxx\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\frame.py", line 2002, in _getitem_array
indexer = self.loc._convert_to_indexer(key, axis=1)
File "C:\Users\xxxx\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\indexing.py", line 1231, in _convert_to_indexer
raise KeyError('%s not in index' % objarr[mask])
KeyError: '[0 1] not in index'
我觉得我的计算机上安装了Python的方式。我在64位Win 7 Pro下安装了Anaconda Navigator 1.7.0。我已经多次重启了Anaconda和Sypder,并在很多天内重启了很多次。同样的错误。我今天更新了Anaconda。同样的错误。我通过anaconda导航器或直接从开始菜单运行spyder - 同样的错误。正如我之前提到的,我的教授在运行相同的代码时没有问题。
有没有人对这件事在我的电脑上工作的错误提出任何建议?我的代码示例包括我能在我的机器上执行的其他一些列选择,所以我认为DataFrame一般都在工作。
我注意到的一件事是,由于PC的设置方式,我的路径很长。我想知道这是不是问题的一部分。
示例代码 - 来自教授,适用于他,除了最后一行之外的所有代码也适用于我。
#%%
import pandas
#%% data frame from dictionary
raw_data = {'first_name': ['Jason', 'Molly', 'Tina', 'Jake', 'Amy'],
'last_name': ['Miller', 'Jacobson', ".", 'Milner', 'Cooze'],
'age': [42, 52, 36, 24, 73],
'preTestScore': [4, 24, 31, ".", "."],
'postTestScore': [25, 94, 57, 62, 70]}
df = pandas.DataFrame(raw_data, columns = ['first_name', 'last_name', 'age', 'preTestScore', 'postTestScore'])
df
#%% select the 'first_name' column
b =df['first_name']
b.tolist()
#%% select multiple columns
df[ ['first_name', 'last_name'] ]
#%% select the first 2 columns (by column index - FAILS FOR ME)
# (THIS IS THE LINE THAT THROWS THE ERROR LISTED ABOVE)
df[ [0,1] ]
我尝试过的其他代码 - 这些也可以。
#%% prove that the columns are there
print(df.columns)
#%% select multiple columns by column name
b = df[ ['first_name', 'last_name'] ]
print(b)
#%% select same columns by sub-setting column list
c = df[ df.columns[0:2] ]
print(c)
有关如何解决此问题的任何想法?我可以提供哪些其他信息来帮助您?提前谢谢。
答案 0 :(得分:0)
检查两台机器中的pandas版本。
import pandas as pd
pd.__version__