Python中用append()連接后多出一列Unnamed的解決
Python append()連接后多出一列Unnamed問題
pandas用append連接2個dataframe,總是多出一列Unnamed:
Unnamed: 0 candle_begin_time ? ? ?
0 0.0 2019-01-01 00:00:00
1 1.0 2019-01-01 00:05:00
2 2.0 2019-01-01 00:10:00
3 3.0 2019-01-01 00:15:00
4 4.0 2019-01-01 00:20:00
注意到append連接的2個dataframe,前者是通過read_csv()函數(shù)從本地csv文件讀取
后者是通過網(wǎng)站接口直接取數(shù)。
read_csv()函數(shù)讀取csv文件后,需要指定一列為index
第一列不會默認為index,而直接認為是正常數(shù)值
該列通過append連接時與接口取數(shù)結(jié)構(gòu)匹配不上,會新增一列unnamed用于存儲csv中序號列
解決辦法
read_csv()函數(shù)讀取數(shù)據(jù)時, 使用index_col參數(shù),明確指定index行。
如:
df = pd.read_csv(filename,index_col=0) #指定csv中第一列為index
Python對于append()的錯誤理解
在對于Python的列表學習階段,對append()函數(shù)的理解出現(xiàn)問題,現(xiàn)記錄如下:
我原以為:
t = [] t.append([])
結(jié)果t應(yīng)該是[],[];但正確結(jié)果卻是[[]]。
append()函數(shù)的作用是將 x 元素添加到 s 列表的末尾。如果按照字面意思理解,確實是應(yīng)該將[]的空內(nèi)容加到空列表的末尾。但是我仍然沒有理解清楚空列表的含義,是不包含任何內(nèi)容的。如果我認為空列表的含義是,有一個空的字符在里面,那么t[0]就表示空字符,這顯然是不符合規(guī)則的。
所以對空列表[]進行append([])操作,是像其中內(nèi)嵌一個空列表,形成二維度的列表。那么對于[[]]就不是一個空列表了,它的第一個元素t[0]為[]。
此時,如果我像[[]]執(zhí)行append([]),才會成為[[], []]。
如果我希望在二維空列表上形成三維列表甚至更多維度。就需要在每層的最外層維度的第一個元素使用append()函數(shù)。
例如對于t = [[]]二維形成三維:
t = [[]] t[0].append([])
這時t即為[[[]]]。
總結(jié)
遇到這種問題,上手實操一下,很容易就理解了。只靠腦子想,永遠不知道怎么回事,畢竟計算機的語言是寫好的嘛,它總不會錯的······
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python利用memory_profiler查看內(nèi)存占用情況
memory_profiler是第三方模塊,用于監(jiān)視進程的內(nèi)存消耗以及python程序內(nèi)存消耗的逐行分析。本文將利用memory_profiler查看代碼運行占用內(nèi)存情況,感興趣的可以了解一下2022-06-06
基于Python 中函數(shù)的 收集參數(shù) 機制
今天小編就為大家分享一篇基于Python 中函數(shù)的 收集參數(shù) 機制,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12
Python中創(chuàng)建對象列表的實現(xiàn)示例
本文主要介紹了Python中創(chuàng)建對象列表的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-03-03
python2利用wxpython生成投影界面工具的圖文詳解
這篇文章主要介紹了python2利用wxpython生成投影界面工具的圖文詳解,本文通過實例圖文相結(jié)合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-04-04

