1. 程式人生 > 其它 >爬蟲與Python:(四)爬蟲進階擴充套件之Pandas——5.CSV檔案

爬蟲與Python:(四)爬蟲進階擴充套件之Pandas——5.CSV檔案

1. 定義

CSV(Comma-Separated Values,逗號分隔值,有時也稱為字元分隔值,因為分隔字元也可以不是逗號),其檔案以純文字形式儲存表格資料(數字和文字)。

CSV 是一種通用的、相對簡單的檔案格式,被使用者、商業和科學廣泛應用。

Pandas 可以很方便的處理 CSV 檔案,本文以 nba.csv 為例,你可以下載 nba.csv開啟 nba.csv 檢視。(接下來的例子,我將csv放在了同名資料夾下)

2. 讀取CSV檔案

1 df = pd.read_csv('nba.csv')
2 print(df.to_string())   #to_string() 用於返回 DataFrame 型別的資料,如果不使用該函式,則輸出結果為資料的前面 5 行和末尾 5 行,中間部分以 ... 代替。

3. 儲存CSV檔案

我們也可以使用 to_csv() 方法將 DataFrame 儲存為 csv 檔案

 1 import pandas as pd
 2 
 3 # 三個欄位 name, site, age
 4 nme = ["Google", "Runoob", "Taobao", "Wiki"]
 5 st = ["www.google.com", "www.runoob.com", "www.taobao.com", "www.wikipedia.org"]
 6 ag = [90, 40, 80, 98]
 7 
 8 # 字典
 9 dict = {'name': nme, '
site': st, 'age': ag} 10 11 df = pd.DataFrame(dict) 12 13 # 儲存 dataframe 14 df.to_csv('site.csv')

執行成功後,我們開啟 site.csv 檔案,顯示結果如下:

4. 資料處理

4.1 head()

head( n ) 方法用於讀取前面的 n 行,如果不填引數 n ,預設返回 5 行。

1 import pandas as pd
2 
3 # head() 讀取前5行
4 df = pd.read_csv('nba.csv')
5 print(df.head())

輸出結果為:

            Name            Team  Number  ... Weight            College     Salary
0  Avery Bradley  Boston Celtics     
0.0 ... 180.0 Texas 7730337.0 1 Jae Crowder Boston Celtics 99.0 ... 235.0 Marquette 6796117.0 2 John Holland Boston Celtics 30.0 ... 205.0 Boston University NaN 3 R.J. Hunter Boston Celtics 28.0 ... 185.0 Georgia State 1148640.0 4 Jonas Jerebko Boston Celtics 8.0 ... 231.0 NaN 5000000.0

索引,head()讀取前10行的方法為:

1 import pandas as pd
2 
3 # head() 讀取前10行
4 df = pd.read_csv('nba.csv')
5 print(df.head(10))  # 不填,預設5行

4.2 tail()

tail( n ) 方法用於讀取尾部的n行。如果不填引數 n ,預設返回 5 行,空行各個欄位的值返回 NaN。

1 import pandas as pd
2 
3 # 讀取尾部的n行
4 df = pd.read_csv('nba.csv')
5 print(df.tail(10))

4.3 info()

info()方法 返回表的基本資訊:

import pandas as pd

# 返回表的基本資訊
df = pd.read_csv('nba.csv')
print(df.info())

輸出結果為:

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 458 entries, 0 to 457          # 行數,458 行,第一行編號為 0
Data columns (total 9 columns):            # 列數,9列
 #   Column    Non-Null Count  Dtype       # 各列的資料型別
---  ------    --------------  -----  
 0   Name      457 non-null    object 
 1   Team      457 non-null    object 
 2   Number    457 non-null    float64
 3   Position  457 non-null    object 
 4   Age       457 non-null    float64
 5   Height    457 non-null    object 
 6   Weight    457 non-null    float64
 7   College   373 non-null    object         # non-null,意思為非空的資料    
 8   Salary    446 non-null    float64
dtypes: float64(4), object(5)                 # 型別
memory usage: 23.3+ KB
None

5. 參考網址

有志者,事竟成,破釜沉舟,百二秦關終屬楚; 苦心人,天不負,臥薪嚐膽,三千越甲可吞吳。