一、读取Excel文件

1.1 read_excel() 常用参数
import pandas as pd

# 基本读取
df = pd.read_excel(r"C:\python\超市营业额.xlsx")

# 常用参数组合
df = pd.read_excel(
    r"C:\python\超市营业额.xlsx",        # 文件路径
    usecols=['工号','姓名','时段','交易额'], # 只读取指定列
    skiprows=[1,3,5],                     # 跳过第1、3、5行
    index_col=1                           # 指定某列作为行索引
)

大白话理解参数

参数 作用 大白话
usecols 指定读取哪些列 “我只要这几列,其他的别给我”
skiprows 跳过指定行 “第1行是空行、第3行是废话,跳过”
index_col 用某列做行索引 “用姓名这一列当行标签”

二、查看数据

# 输出前10行
print(df[:10])

# 查看前5行
print(df.head())

# 查看后5行
print(df.tail())

三、数据筛选(核心!)

3.1 行切片(取指定范围的行)
# 取第5到第10行(左闭右开)
print(df[5:11])
3.2 iloc:用数字位置做索引
# 取索引为5的那一行
print(df.iloc[5])

# 取第3、5、10行
print(df.iloc[[3, 5, 10]])

# 取第3、5、10行,只取第0、1、4列
print(df.iloc[[3, 5, 10], [0, 1, 4]])

大白话iloc 像Excel的行号列号,用数字定位。df.iloc[行号, 列号]

3.3 loc:用标签文本做索引
# 取索引标签为3、5、10的行,只取"姓名"和"交易额"列
print(df.loc[[3, 5, 10], ['姓名', '交易额']])

大白话loc 用自定义的标签名定位,更直观。

3.4 at:快速取单个值
# 取行下标为3、列名为"姓名"的那个值
print(df.at[3, '姓名'])

iloc、loc、at 对比

方法 索引方式 适用场景
iloc 数字位置 知道行列号
loc 标签名称 知道行列名
at 标签名称 只取一个值,速度最快
3.5 条件筛选(重点!)
# 筛选交易额大于1700的数据
print(df[df['交易额'] > 1700])

# 筛选下午班的数据
print(df[df['时段'] == '14:00-21:00'])

# 多条件组合:张三 且 下午班
print(df[(df['姓名'] == '张三') & (df['时段'] == '14:00-21:00')])

# 筛选指定多个值:张三和李四
print(df[df['姓名'].isin(['张三', '李四'])])

# 筛选交易额在800-850之间的数据
print(df[df['交易额'].between(800, 850)])

关键记忆点

  • 组合条件用 &(且)和 |(或),不能andor
  • 每个条件必须用括号括起来
  • isin() 判断是否在指定列表中
  • between() 判断是否在数值区间内

四、统计计算

# 交易总额
print(df['交易额'].sum())

# 下午班的交易总额
print(df[df['时段'] == '14:00-21:00']['交易额'].sum())

# 日用品柜台销售总额
print(df[df['柜台'] == '日用品']['交易额'].sum())

# 张三和李四二人销售总额
print(df[df['姓名'].isin(['张三', '李四'])]['交易额'].sum())

大白话:先用条件筛选出想要的数据行,再取['交易额']这一列,最后用.sum()求和。思路就是:筛选 → 取列 → 计算

今日核心总结

  1. 读取Excelpd.read_excel(),常用参数 usecols(选列)、skiprows(跳行)、index_col(索引列)。

  2. 三种索引方式

    • iloc:用数字位置(像Excel的A1、B2)
    • loc:用标签名称(像Excel的列名)
    • at:快速取单个值
  3. 条件筛选套路

    • 单条件:df[df['列名'] > 值]
    • 多条件:df[(条件1) & (条件2)]
    • 指定多个值:df[df['列名'].isin([值1, 值2])]
    • 数值区间:df[df['列名'].between(最小值, 最大值)]
  4. 统计计算套路筛选 → 取列 → 计算,如 df[条件]['列名'].sum()

注:已经使用DeepSeek进行整理精简核心内容,些许不理解的配合个人笔记进行理解。
这两天工作太忙了,休息休息,明天继续,今天只学了一节,进度还是有点慢。

更多推荐