【第2月_day10】Pandas数据查看与选择
以下是专为小白设计的 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 float64 2 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的基础数据处理啦!后续可学习更复杂的操作如分组、合并等。