日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Python中用append()連接后多出一列Unnamed的解決_python

作者:779醒 ? 更新時間: 2023-03-28 編程語言

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()函數從本地csv文件讀取

后者是通過網站接口直接取數。

read_csv()函數讀取csv文件后,需要指定一列為index

第一列不會默認為index,而直接認為是正常數值

該列通過append連接時與接口取數結構匹配不上,會新增一列unnamed用于存儲csv中序號列

解決辦法

read_csv()函數讀取數據時, 使用index_col參數,明確指定index行。

如:

df = pd.read_csv(filename,index_col=0) #指定csv中第一列為index

Python對于append()的錯誤理解

在對于Python的列表學習階段,對append()函數的理解出現問題,現記錄如下:

我原以為:

t = []
t.append([])

結果t應該是[],[];但正確結果卻是[[]]。

append()函數的作用是將 x 元素添加到 s 列表的末尾。如果按照字面意思理解,確實是應該將[]的空內容加到空列表的末尾。但是我仍然沒有理解清楚空列表的含義,是不包含任何內容的。如果我認為空列表的含義是,有一個空的字符在里面,那么t[0]就表示空字符,這顯然是不符合規則的。

所以對空列表[]進行append([])操作,是像其中內嵌一個空列表,形成二維度的列表。那么對于[[]]就不是一個空列表了,它的第一個元素t[0]為[]。

此時,如果我像[[]]執行append([]),才會成為[[], []]。

如果我希望在二維空列表上形成三維列表甚至更多維度。就需要在每層的最外層維度的第一個元素使用append()函數。

例如對于t = [[]]二維形成三維:

t = [[]]
t[0].append([])

這時t即為[[[]]]。

總結

遇到這種問題,上手實操一下,很容易就理解了。只靠腦子想,永遠不知道怎么回事,畢竟計算機的語言是寫好的嘛,它總不會錯的······

原文鏈接:https://blog.csdn.net/chenbaixing/article/details/89440228

欄目分類
最近更新