python - KeyError:“索引(列,dtype ='object')不在索引中”
问题描述
连接后尝试将 2 个数据帧的列并排放置时,出现 KeyError: "Index(['scanCd'], dtype='object') not in index" 错误。
我无法找出问题的根本原因,有人可以帮忙吗?
我已经阅读了一些发布的问题,但这些解决方案似乎没有帮助。我的主要目的是比较 2 个 df 并突出差异
{Code:
val ={'lineNum':[10624,11192,15596,15790], 'scanCd':[10,20,30,40], 'brandName':['HP','Dell','Samsung','Lenovo']}
dft = pd.DataFrame(val, columns= ['lineNum','scanCd','brandName'])
dfm = dft.copy()
# change the values of few elements
dfm.loc[0, 'brandName'] = 'H-P'
dfm.loc[1, 'brandName'] = 'DELL'
dfm.loc[2, 'brandName'] = 'SAMSUNG'
df_all = pd.concat([dft.set_index('scanCd'), dfm.set_index('scanCd')],
axis='columns', keys=['dft', 'dfm'])
df_final = df_all.swaplevel(axis='columns')[dft.columns[0:]]
Error:
Traceback (most recent call last):
File "<ipython-input-318-16965db0a52e>", line 11, in <module>
df_final = df_all.swaplevel(axis='columns')[dft.columns[0:]]
File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\frame.py", line 2986, in __getitem__
indexer = self.loc._convert_to_indexer(key, axis=1, raise_missing=True)
File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\indexing.py", line 1285, in _convert_to_indexer
return self._get_listlike_indexer(obj, axis, **kwargs)[1]
File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\indexing.py", line 1075, in _get_listlike_indexer
indexer, keyarr = ax._convert_listlike_indexer(key, kind=self.name)
File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\indexes\multi.py", line 2408, in _convert_listlike_indexer
raise KeyError("%s not in index" % keyarr[mask])
KeyError: "Index(['scanCd'], dtype='object') not in index"
}
解决方案
推荐阅读
- php - 使用角度 $http 从 php api 请求数据时出错
- swift - Swift Alamofire 使用 UIWebView 向 VC 请求回答
- google-maps - 在 iOS 上关闭信息窗口
- css - SCSS - 将代码与参数组合/缩短/简化?
- ffmpeg - ffmpeg不正确的屁股字幕边框宽度
- python-3.x - ImportError: DLL load failed: The specified module could not be found IOT Simulate
- java - Spring Service - 我应该传递实体 ID 还是实体本身?
- r - 有没有办法编写一个随机采样数据帧中连续行的单行命令?
- c++ - 程序运行两次后关闭
- vue.js - 如何以编程方式基于变量添加事件?