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. 修改行/列索引(調整標籤)

直接賦值給 indexcolumns,或用 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 數據處理的基礎操作:
- 創建數據:用 SeriesDataFrame 構建一維/二維數據
- 查看數據:通過 head/tail/info/describe 快速瞭解數據特徵
- 修改數據:用 loc/iloc 定位修改、新增/刪除列、調整索引

pandas 操作的核心是“定位數據”,記住 loc(標籤)和 iloc(位置)的區別,多練習就能熟練掌握!如果需要更復雜的操作(如分組、合併),可以後續深入學習。現在就動手嘗試吧~

小夜