Python:过滤包含关键字的行
Python Pandas:根据指定的关键字,过滤(提取)包含该关键字的行,并保存为 Excel 文件。
import pandas as pd
import numpy as np
inFile = r'D:\教学任务列表 (理论课).xlsx'
outFile = r'D:\教学任务(统计).xlsx'
df1 = pd.read_excel(inFile,header=1)
type(df1)
df1.head()
df1.columns.shape
keys_wd = ['物理','电子','通信']
conditions = df1['教学班名称'].str.contains('|'.join(keys_wd))
wudian = df1[conditions]
#
wudian2 = df1[df1['教学班名称'].apply(lambda x: any(key in x for key in keys_wd))]
wudian2
# 1 直接存-不能写多个sheet
wudian.to_excel(outFile,sheet_name='公共课',index=False) #
# df1.to_excel(outFile,sheet_name='所有课',index=False)
# 2 使用ExcelWriter
with pd.ExcelWriter(outFile) as writer:
df1.to_excel(writer,sheet_name='所有课')
wudian.to_excel(writer,sheet_name='公共课')
# 3 ExcelWriter,必究自由的方式
writer = pd.ExcelWriter(outFile)
wudian.to_excel(writer,sheet_name='公共课',index=False)
df1.to_excel(writer,sheet_name='所有课',index=False)
上面例子中,列单元格中包含有关键字,比如:电子 2001、通信 2001 等形式。如果单元格是由关键字直接混合组成,比如:电子、通信、电子,也可以用上面的代码,但是更简洁的是使用 pd.merge
。
df1 = pd.DataFrame({'姓名':['张三','李四','王五','马七','杨八'],
'其他':[100,200,300,400,500]})
df2 = pd.DataFrame({'姓名':['张三','李四','王五']})
df1.merge(df2) #默认inner
参考:
本文来自博客园,作者:hzworld,转载请注明原文链接:https://www.cnblogs.com/ourweiguan/p/17658483.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)