天天看點

DataFrame操作——資料讀取

接着上一個部落格,https://blog.csdn.net/waveplot/article/details/88666090

在Series和DataFrame介紹完後,也就是pandas的内置函數,也是一般我們學習pandas的重點。

pd.read_csv()

read函數有幾個關鍵參數,以下介紹:

filepath:檔案路徑和檔案名

sep:分隔符

header:指定讀取檔案的哪一行作為列的label

dtype:指定讀取某一列讀取時的格式

  • 檔案讀取函數,在沒有特殊要求的情況下,隻需要輸入一個檔案名就可以了也就是 filepath

為了顯示友善,使用的是Jupyter 

DataFrame操作——資料讀取
DataFrame操作——資料讀取

沒有什麼技術含量,直接放進來就行,raw就是一個DataFrame了。

隻不過我們這裡讀取的是一個CSV檔案,那麼問題來了,其他檔案怎麼讀?

  • txt可不可以呢?當然,都是可以的。
DataFrame操作——資料讀取
DataFrame操作——資料讀取

txt檔案讀進來也是和Excel一樣的。但是這裡需要注意,檔案存儲的時候,字元之間是以空格區分的,

是以在資料讀取的時候出現了錯誤。這時候就要使用sep參數

那麼問題就又來了,既然是txt檔案,那個資料存儲的方式應該有多種,那麼如何讀取?

DataFrame操作——資料讀取
DataFrame操作——資料讀取
DataFrame操作——資料讀取
DataFrame操作——資料讀取

可以看到,read_csv() 函數以'sep'選項來區分txt字元之間的間隔的。

  • 上面是一些普通檔案的讀取,那如果是一些沒有表頭的資料呢?如果按照上面的讀取方法是不是少了一行?那麼這個時候就應該忽略表頭,将檔案全部視為要操作的值。
DataFrame操作——資料讀取

上面這個資料在讀取時,不需要表頭。是以借助 header 參數

DataFrame操作——資料讀取

如果自己要加上label的話,則需要将 header 賦上其他值

DataFrame操作——資料讀取

可以看到,檔案中的第二行作為資料的label被讀取了。

  • 很多人也有時很困擾,尤其是習慣了C++程式設計的同學。會表示:為什麼檔案讀取可以同時存在字元串和數字?

當然,這是因為Python為我們進行了自動識别。但是我們如果有一些特殊要求呢?比如 010 如果正常讀取的話就是10,而我們如果想要将其讀入為 '010'字元串呢?

這時候就要用 dtype 參數了。

DataFrame操作——資料讀取
DataFrame操作——資料讀取
DataFrame操作——資料讀取

可以看到,dtype這個參數是非常有用的,它可以控制我們讀取檔案時,每一個資料的形式。

繼續閱讀