以下是專為小白設計的 Pandas數據查看與選擇 學習內容,從基礎到應用逐步講解,附帶清晰示例和注意事項:
一、數據查看:快速了解你的數據
1. head()
和 tail()
- 作用:查看數據的前幾行或后幾行,默認顯示5行。
- 示例:
import pandas as pd df = pd.read_csv("data.csv") # 假設讀取了一個數據表# 查看前3行 print(df.head(3)) # 查看后2行 print(df.tail(2))
2. info()
- 作用:顯示數據的基本信息(行數、列名、數據類型、非空值數量)。
- 示例:
輸出示例:df.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 100 entries, 0 to 99 Data columns (total 3 columns):# Column Non-Null Count Dtype --- ------ -------------- ----- 0 Name 100 non-null object 1 Age 95 non-null float642 Score 90 non-null float64
3. describe()
- 作用:生成數值型列的統計摘要(均值、標準差、最小值、最大值等)。
- 示例:
輸出示例:df.describe()
Age Score count 95.000000 90.000000 mean 28.526316 85.300000 std 4.123456 5.678901 min 18.000000 60.000000 25% 25.000000 82.000000 50% 28.000000 85.000000 75% 32.000000 89.000000 max 40.000000 99.000000
二、數據選擇:精準定位你要的數據
1. 列選擇
- 方法1:直接通過列名選擇單列(返回Series)。
df["Name"] # 選擇“Name”列
- 方法2:選擇多列(返回DataFrame)。
df[["Name", "Score"]] # 同時選擇兩列
- 方法3:用點符號選擇列(僅限列名無空格、無特殊符號時)。
df.Age # 等效于 df["Age"]
2. 行選擇
- 方法1:通過行索引標簽選擇(
loc
)。df.loc[0] # 選擇索引為0的行 df.loc[0:5] # 選擇索引0到5的行(包含5)
- 方法2:通過行位置選擇(
iloc
)。df.iloc[0] # 選擇第1行 df.iloc[0:5] # 選擇第1到第5行(不包含5)
3. 條件篩選
- 單條件篩選:
# 篩選年齡大于30的行 df[df["Age"] > 30]
- 多條件組合:
# 篩選年齡>25 且 分數>80的行(注意括號) df[(df["Age"] > 25) & (df["Score"] > 80)]
- 模糊匹配:
# 篩選名字包含“張”的行 df[df["Name"].str.contains("張")]
三、常見問題與注意事項
-
為什么用
loc
和iloc
?loc
按標簽選擇(如索引名是字符串時用),iloc
按位置選擇(類似列表索引)。
-
條件篩選后如何修改數據?
- 先篩選再賦值,避免鏈式操作:
df.loc[df["Age"] > 30, "Score"] = 100 # 正確寫法
- 先篩選再賦值,避免鏈式操作:
-
為什么
df[df.Age > 30]
可以運行?- 這是條件篩選的簡寫形式,等價于
df[df["Age"] > 30]
。
- 這是條件篩選的簡寫形式,等價于
四、實際應用場景示例
-
查看數據概覽:
df.head() # 看前5行 df.describe() # 分析數值分布
-
提取關鍵信息:
high_score = df[df["Score"] > 90] # 篩選高分學生
-
處理缺失值:
df.dropna(subset=["Age"]) # 刪除“Age”列缺失的行
五、練習小任務
- 加載你的數據集,用
head(10)
查看前10行。 - 用
info()
查看數據有多少列,哪些列有缺失值? - 篩選出“年齡”大于25歲且“分數”低于60分的所有行。
通過這4個查看方法和3種選擇操作,你已經可以快速上手Pandas的基礎數據處理啦!后續可學習更復雜的操作如分組、合并等。