如何用Python的Pandas读取Excel特定列并过滤指定条件行
嘿,这需求我熟!用pandas完全可以轻松搞定,我给你一步步拆解,代码和解释都安排得明明白白:
实现步骤与代码示例
首先得确保你装了必要的库,pandas用来处理数据,openpyxl用来读取xlsx格式的Excel文件:
pip install pandas openpyxl
接下来是核心代码,每一步都给你注释清楚:
import pandas as pd # 替换成你的Excel文件路径,engine参数针对xlsx格式,xls格式可以换成"xlrd" df = pd.read_excel("你的Excel文件路径.xlsx", engine="openpyxl") # 筛选出uniqueidentifier列为空的行 # 这里用isna()判断空值,pandas里Excel的空单元格会被识别为NaN filtered_rows = df[df["uniqueidentifier"].isna()] # 把筛选后的行数据存入列表,两种方式任你选: # 方式1:每行转成字典,键是列名,值是单元格内容,可读性强 data_list = filtered_rows.to_dict("records") # 方式2:每行转成纯值列表,顺序和表格列顺序一致,更轻量化 # data_list = filtered_rows.values.tolist() # 获取这些筛选行的原表格索引,转成列表方便使用 filtered_indices = filtered_rows.index.tolist() # 打印验证结果 print("筛选出的空值行数据:", data_list) print("这些行在原表格中的索引:", filtered_indices)
额外说明
- 如果你的需求是仅当uniqueidentifier列值为"yes"时跳过,其他非空值的行需要保留,那把筛选条件改成下面这样就行:
filtered_rows = df[df["uniqueidentifier"] != "yes"] - 要是Excel里的“空”是指空字符串(而不是真正的空单元格),那判断条件换成
df["uniqueidentifier"] == ""就可以了。
我平时处理Excel数据经常用这套逻辑,亲测好用,你替换成自己的文件路径就能直接跑啦!
内容的提问来源于stack exchange,提问作者S.Mehta




