Pandas出現(xiàn)KeyError的問題解決及分析
寫在前面
今天在用爬蟲及Pandas更新股票日線數(shù)據(jù)的時(shí)候發(fā)現(xiàn)KeyError報(bào)錯(cuò),后面跟了一個(gè)DataFrame列索引,一開始以為是索引修改列的值導(dǎo)致的問題,修改為.loc錯(cuò)誤依然出現(xiàn),后來將列值的內(nèi)容修改方法改為.apply(lambda)問題依然出現(xiàn)。就在百思不得其解時(shí),我發(fā)現(xiàn)了問題所在。。。
報(bào)錯(cuò)詳細(xì)信息
主要配置及環(huán)境
- Windows 10 64位
- Python:3.6.8
- Pandas:1.0.3
報(bào)錯(cuò)內(nèi)容
Traceback (most recent call last):
File "E:\py36\lib\site-packages\pandas\core\indexes\base.py", line 2646, in get_loc
return self._engine.get_loc(key)
File "pandas\_libs\index.pyx", line 111, in pandas._libs.index.IndexEngine.get_loc
File "pandas\_libs\index.pyx", line 138, in pandas._libs.index.IndexEngine.get_loc
File "pandas\_libs\hashtable_class_helper.pxi", line 1619, in pandas._libs.hashtable.PyObjectHashTable.get_item
File "pandas\_libs\hashtable_class_helper.pxi", line 1627, in pandas._libs.hashtable.PyObjectHashTable.get_item
KeyError: 'turnover'During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "E:\aaaDesktop\test.py", line 34, in <module>
df['turnover'] = df['turnover'] * 100
File "E:\py36\lib\site-packages\pandas\core\frame.py", line 2800, in __getitem__
indexer = self.columns.get_loc(key)
File "E:\py36\lib\site-packages\pandas\core\indexes\base.py", line 2648, in get_loc
return self._engine.get_loc(self._maybe_cast_indexer(key))
File "pandas\_libs\index.pyx", line 111, in pandas._libs.index.IndexEngine.get_loc
File "pandas\_libs\index.pyx", line 138, in pandas._libs.index.IndexEngine.get_loc
File "pandas\_libs\hashtable_class_helper.pxi", line 1619, in pandas._libs.hashtable.PyObjectHashTable.get_item
File "pandas\_libs\hashtable_class_helper.pxi", line 1627, in pandas._libs.hashtable.PyObjectHashTable.get_item
KeyError: 'turnover'
[Finished in 5.4s]
問題解決
代碼主要流程:
抓取Sina財(cái)經(jīng)的日線數(shù)據(jù)接口(有需要者可以私信我了解更多),抓取交易日所有交易的股票數(shù)據(jù),進(jìn)行數(shù)據(jù)處理、整合為DataFrame并逐行讀取存入CSV文件。
既然不是索引的問題,那就只有一直往上追溯,結(jié)果發(fā)現(xiàn),在 設(shè)置抓取函數(shù)的循環(huán)跳出條件 時(shí),由于各大網(wǎng)站最近在備案&更新,導(dǎo)致空數(shù)據(jù)頁面顯示內(nèi)容變成了一個(gè)字符串類型的空列表。。。于是只要將循環(huán)跳出的條件設(shè)置為:
if eval(content) == []:
就可以解決問題了。
舉一反三
由于這次的經(jīng)驗(yàn),我發(fā)現(xiàn)在出現(xiàn)KeyError報(bào)錯(cuò)的時(shí)候,需要先查看數(shù)據(jù)是不是存在空值,尤其是程序里面有爬蟲代碼的時(shí)候,更需要注意。網(wǎng)站經(jīng)常在變,不過基本上沒有大的變化,萬變不離其宗,掌握大的方法就可以了。
到此這篇關(guān)于Pandas出現(xiàn)KeyError的問題解決及分析的文章就介紹到這了,更多相關(guān)Pandas KeyError內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Jupyter Notebook 文件默認(rèn)目錄的查看以及更改步驟
這篇文章主要介紹了Jupyter Notebook 文件默認(rèn)目錄的查看以及更改步驟,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04
Pycharm-community-2020.2.3 社區(qū)版安裝教程圖文詳解
這篇文章主要介紹了Pycharm-community-2020.2.3 社區(qū)版安裝教程圖文詳解,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12
conda管理Python虛擬環(huán)境的實(shí)現(xiàn)
本文主要介紹了conda管理Python虛擬環(huán)境的實(shí)現(xiàn),主要包括使用conda工具創(chuàng)建、查看和刪除Python虛擬環(huán)境,具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01
LyScript實(shí)現(xiàn)計(jì)算片段Hash并寫出Excel的示例代碼
本案例將學(xué)習(xí)運(yùn)用LyScript計(jì)算特定程序中特定某些片段的Hash特征值,并通過xlsxwriter這個(gè)第三方模塊將計(jì)算到的hash值存儲(chǔ)成一個(gè)excel表格,感興趣的可以跟隨小編一起學(xué)習(xí)一下2022-09-09
Python?numpy中np.random.seed()的詳細(xì)用法實(shí)例
在學(xué)習(xí)人工智能時(shí),大量的使用了np.random.seed(),利用隨機(jī)數(shù)種子,使得每次生成的隨機(jī)數(shù)相同,下面這篇文章主要給大家介紹了關(guān)于Python?numpy中np.random.seed()的詳細(xì)用法,需要的朋友可以參考下2022-08-08
Python實(shí)現(xiàn)字符串匹配算法代碼示例
這篇文章主要介紹了Python實(shí)現(xiàn)字符串匹配算法代碼示例,涉及字符串匹配存在的問題,蠻力法字符串匹配,Horspool算法,具有一定參考價(jià)值,需要的朋友可以了解下。2017-12-12
python多進(jìn)程下實(shí)現(xiàn)日志記錄按時(shí)間分割
這篇文章主要為大家詳細(xì)介紹了python多進(jìn)程下實(shí)現(xiàn)日志記錄按時(shí)間分割,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07

