爲什麼要學pandas?¶
在數據處理領域,Python的pandas庫就像一位”數據管家”,能幫我們輕鬆地讀取、清洗、分析數據。CSV(逗號分隔值)是最常見的數據格式之一,很多數據文件(比如Excel導出的表格、統計報表)都能用CSV格式保存。學會用pandas讀取CSV文件,是數據分析的第一步!
第一步:安裝pandas¶
如果你的電腦還沒安裝pandas,需要先通過命令行安裝。打開終端(Windows用”命令提示符”,Mac/Linux直接用終端),輸入:
pip install pandas
提示:如果用Anaconda或Jupyter Notebook,pandas通常已經預裝,直接跳過這步即可。
第二步:導入pandas庫¶
要使用pandas,需要先在代碼中導入它。通常我們會給pandas起個簡短的別名pd,方便後續調用:
import pandas as pd
這行代碼就像打開了”數據管家”的工具箱,接下來就可以用pd調用各種工具了。
第三步:讀取CSV文件¶
假設我們有一個簡單的CSV文件,比如叫student.csv,內容如下(你可以自己創建一個類似的文件,或者跟着例子操作):
姓名,學號,語文,數學,英語
張三,001,85,92,78
李四,002,90,88,95
王五,003,76,80,82
這個文件記錄了3個學生的成績信息,列名是姓名、學號、語文、數學、英語。
基礎讀取:最常用的read_csv函數¶
用pandas讀取CSV文件只需一行代碼:
# 讀取CSV文件(假設文件在當前文件夾)
df = pd.read_csv('student.csv')
這裏df是”DataFrame”的縮寫,pandas用它來表示表格型數據(就像Excel裏的工作表)。執行這行代碼後,df就包含了CSV文件裏的所有數據。
第四步:查看和理解數據¶
讀取文件後,別急着分析!先看看數據長什麼樣、有沒有問題。pandas提供了幾個簡單又實用的工具:
1. 查看前幾行數據:head()和tail()¶
df.head():顯示前5行數據(默認),快速預覽數據格式。df.tail(3):顯示後3行數據(括號裏可以指定行數)。
# 顯示前5行
print(df.head())
# 顯示後3行
print(df.tail(3))
輸出結果應該和CSV文件內容一致,能看到列名和對應的數據。
2. 查看數據基本信息:info()¶
info()能幫我們檢查數據類型(比如數值型、字符串型)和是否有缺失值:
df.info()
輸出示例:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 5 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 姓名 3 non-null object
1 學號 3 non-null object
2 語文 3 non-null int64
3 數學 3 non-null int64
4 英語 3 non-null int64
dtypes: int64(3), object(2)
memory usage: 248.0+ bytes
- RangeIndex:表示行數(0-2,共3行)。
- Non-Null Count:每列非缺失值的數量(這裏都是3,說明沒有缺失值)。
- Dtype:數據類型(姓名、學號是字符串
object,成績是整數int64)。
3. 統計數值數據:describe()¶
如果數據中有數值列(如語文、數學),describe()能快速統計最小值、最大值、平均值等:
df.describe()
輸出示例(只統計數值列):
語文 數學 英語
count 3.000000 3.000000 3.000000
mean 83.666667 86.000000 85.000000
std 7.559289 5.163978 7.071068
min 76.000000 80.000000 78.000000
25% 80.500000 84.000000 80.500000
50% 85.000000 88.000000 82.000000
75% 87.500000 90.000000 88.500000
max 90.000000 92.000000 95.000000
第五步:處理常見問題(進階)¶
如果你的CSV文件有特殊格式,比如中文亂碼、分隔符不是逗號、沒有表頭等,pandas也能靈活應對:
1. 中文亂碼:指定編碼格式¶
如果讀取時出現中文亂碼,可能是文件編碼和Python默認編碼不一致。嘗試用encoding參數指定編碼:
# 常見編碼:utf-8(默認)、gbk(中文Windows常用)
df = pd.read_csv('student.csv', encoding='utf-8')
2. 分隔符不是逗號:用sep參數¶
雖然CSV通常是逗號分隔,但有些文件可能用製表符(\t)或其他符號分隔。比如用sep='\t'讀取製表符分隔的文件:
# 讀取製表符分隔的文件
df = pd.read_csv('data.tsv', sep='\t')
3. 沒有表頭:自定義列名¶
如果CSV文件沒有第一行表頭(列名),read_csv會自動給列名編號(0,1,2…)。此時可以用names參數自定義列名:
# 假設文件沒有表頭,自定義列名爲['姓名', '學號', '語文', '數學', '英語']
df = pd.read_csv('student.csv', header=None, names=['姓名', '學號', '語文', '數學', '英語'])
總結¶
通過這篇教程,你已經學會了:
- 安裝和導入pandas:
pip install pandas+import pandas as pd - 讀取CSV文件:
pd.read_csv('文件名.csv') - 查看數據:
head()/tail()預覽數據,info()檢查類型和缺失值,describe()統計數值 - 處理特殊格式:編碼、分隔符、無表頭等問題的解決方法
pandas讀取CSV只是數據處理的開始,後續還可以學習數據篩選、清洗、合併等操作。現在,你可以嘗試用自己的CSV文件練習一下,熟悉這些步驟吧!