import pandas as pd
一、創建數據:從“空”到“有”的開始¶
pandas 最核心的數據結構是 Series(一維數據)和 DataFrame(二維表格數據,類似 Excel)。先從最簡單的創建方式學起。
1. 創建 Series(一維數據)¶
Series 可以理解爲帶標籤的“列表”,標籤稱爲“索引”。
示例代碼:
# 用列表創建 Series(默認索引是 0,1,2...)
s = pd.Series([10, 20, 30, 40])
print(s)
# 輸出:
# 0 10
# 1 20
# 2 30
# 3 40
# dtype: int64
# 自定義索引(比如用日期或字母)
s = pd.Series([10, 20, 30], index=['a', 'b', 'c'])
print(s)
# 輸出:
# a 10
# b 20
# c 30
# dtype: int64
2. 創建 DataFrame(二維表格數據)¶
DataFrame 是最常用的結構,類似 Excel 表格,由多個 Series 組成(每列是一個 Series)。
示例代碼:
# 方法 1:用字典創建(鍵=列名,值=列數據)
data = {
"姓名": ["小明", "小紅", "小剛"],
"年齡": [18, 19, 20],
"成績": [90, 85, 95]
}
df = pd.DataFrame(data)
print(df)
# 輸出:
# 姓名 年齡 成績
# 0 小明 18 90
# 1 小紅 19 85
# 2 小剛 20 95
# 方法 2:用二維列表創建(需指定列名)
df = pd.DataFrame([
["小明", 18, 90],
["小紅", 19, 85],
["小剛", 20, 95]
], columns=["姓名", "年齡", "成績"])
print(df) # 輸出同上
二、查看數據:快速瞭解“表裏有什麼”¶
創建數據後,先通過基礎方法查看數據的“外觀”和“信息”,避免後續操作出錯。
1. 查看數據前/後幾行(快速預覽)¶
head(n):查看前 n 行(默認 n=5)tail(n):查看後 n 行(默認 n=5)
示例代碼:
# 查看前 2 行
print(df.head(2))
# 輸出:
# 姓名 年齡 成績
# 0 小明 18 90
# 1 小紅 19 85
# 查看後 1 行
print(df.tail(1))
# 輸出:
# 姓名 年齡 成績
# 2 小剛 20 95
2. 查看數據統計信息¶
info():查看數據類型、非空值數量(快速檢查數據是否有缺失)describe():對數值列統計(計數、均值、標準差、最大/最小值等)columns:查看列名index:查看行索引
示例代碼:
# 查看數據基本信息(數據類型、非空值)
print(df.info())
# 輸出:
# <class 'pandas.core.frame.DataFrame'>
# RangeIndex: 3 entries, 0 to 2
# Data columns (total 3 columns):
# # Column Non-Null Count Dtype
# --- ------ -------------- -----
# 0 姓名 3 non-null object
# 1 年齡 3 non-null int64
# 2 成績 3 non-null int64
# dtypes: int64(2), object(1)
# memory usage: 200.0+ bytes
# 查看數值列統計描述(僅對數值列生效)
print(df.describe())
# 輸出:
# 年齡 成績
# count 3.000000 3.000000
# mean 19.000000 90.000000
# std 1.000000 2.581989
# min 18.000000 85.000000
# 25% 18.500000 87.500000
# 50% 19.000000 90.000000
# 75% 19.500000 92.500000
# max 20.000000 95.000000
# 查看列名和行索引
print("列名:", df.columns) # 輸出:列名: Index(['姓名', '年齡', '成績'], dtype='object')
print("行索引:", df.index) # 輸出:行索引: RangeIndex(start=0, stop=3, step=1)
三、修改數據:讓數據“爲我所用”¶
掌握數據的“增刪改查”,核心是定位數據並修改,以下是常用操作。
1. 修改單個/多個單元格的值¶
用 loc[行標籤, 列名] 或 iloc[行位置, 列位置] 定位後賦值。
- loc:通過標籤定位(如行標籤、列名)
- iloc:通過位置定位(從 0 開始的整數)
示例代碼:
# 修改第一行“年齡”列的值(用 loc 標籤定位)
df.loc[0, "年齡"] = 17
print(df)
# 輸出:
# 姓名 年齡 成績
# 0 小明 17 90
# 1 小紅 19 85
# 2 小剛 20 95
# 修改第三行“成績”列的值(用 iloc 位置定位,行位置 2,列位置 2)
df.iloc[2, 2] = 96
print(df)
# 輸出:
# 姓名 年齡 成績
# 0 小明 17 90
# 1 小紅 19 85
# 2 小剛 20 96
2. 新增列(添加新數據列)¶
直接賦值給新列名即可,支持基於現有列計算。
示例代碼:
# 新增“班級”列(直接賦值)
df["班級"] = "一班"
print(df)
# 輸出:
# 姓名 年齡 成績 班級
# 0 小明 17 90 一班
# 1 小紅 19 85 一班
# 2 小剛 20 96 一班
# 新增“總分”列(基於現有數值列計算)
df["總分"] = df["成績"] + 10 # 假設滿分 100 分,總分=成績+10
print(df)
# 輸出:
# 姓名 年齡 成績 班級 總分
# 0 小明 17 90 一班 100
# 1 小紅 19 85 一班 95
# 2 小剛 20 96 一班 106
3. 刪除列(刪除不需要的列)¶
用 drop() 方法,axis=1 表示刪除列,inplace=True 直接修改原數據。
示例代碼:
# 刪除“總分”列(axis=1 表示列,inplace=True 直接修改原 df)
df.drop("總分", axis=1, inplace=True)
print(df)
# 輸出:
# 姓名 年齡 成績 班級
# 0 小明 17 90 一班
# 1 小紅 19 85 一班
# 2 小剛 20 96 一班
4. 修改行/列索引(調整標籤)¶
直接賦值給 index 或 columns,或用 rename() 重命名。
示例代碼:
# 修改行索引(原索引是 0,1,2 → 改爲“row1”, “row2”, “row3”)
df.index = ["row1", "row2", "row3"]
print(df)
# 輸出:
# 姓名 年齡 成績 班級
# row1 小明 17 90 一班
# row2 小紅 19 85 一班
# row3 小剛 20 96 一班
# 重命名列名(用 rename 方法,inplace=True 直接修改)
df.rename(columns={"班級": "班級名稱"}, inplace=True)
print(df)
# 輸出:
# 姓名 年齡 成績 班級名稱
# row1 小明 17 90 一班
# row2 小紅 19 85 一班
# row3 小剛 20 96 一班
總結¶
通過本文,我們學習了 pandas 數據處理的基礎操作:
- 創建數據:用 Series 和 DataFrame 構建一維/二維數據
- 查看數據:通過 head/tail/info/describe 快速瞭解數據特徵
- 修改數據:用 loc/iloc 定位修改、新增/刪除列、調整索引
pandas 操作的核心是“定位數據”,記住 loc(標籤)和 iloc(位置)的區別,多練習就能熟練掌握!如果需要更復雜的操作(如分組、合併),可以後續深入學習。現在就動手嘗試吧~