首页 > 编程语言 >Python:过滤包含关键字的行

Python:过滤包含关键字的行

时间:2023-08-26 10:55:12浏览次数:46  
标签:sheet name Python excel writer df1 关键字 过滤 pd

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

参考:

  1. Pandas如何检查列是否包含列表中的字符串
  2. 合并连接之 merge
  3. 再见!Pandas 中的 Merge 方法

标签:sheet,name,Python,excel,writer,df1,关键字,过滤,pd
From: https://www.cnblogs.com/ourweiguan/p/17658483.html

相关文章

  • python应用耗时分析
    Linuxtimecommandhttps://linuxize.com/post/linux-time-command/粗略分析整个程序的耗时情况。 timewgethttps://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.19.9.tar.xzWhatwillbeprintedasanoutputdependsontheversionofthetimecommandyou’reu......
  • 【8月摸鱼计划】Python GUI
    总结了一下Python下的图形界面GUI工具,暂时能找到的资料就这么多,后续会补充推荐学习资料。图形界面的定义图形界面图形用户界面(GraphicalUserInterface,简称GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。图形用户界面是一种人与计算机通信的界面显示格式,允许用......
  • 无涯教程-Python - 网络编程
    本章将使您对网络-Socket编程中最著名的概念有所了解。Socket是双向通信通道的端点。Socket可以在一个进程内,同一台机器上的进程之间或不同大陆上的进程之间进行通信。Socket可以在许多不同的通道类型上实现:Unix域Socket,TCP,UDP等。socket库提供用于处理常见传输的特定类以......
  • 用Python制作一个PDF转Word工具
    工具:Python3.9.13,VSCode1.73.1,pdf2docx0.5.6,tkinter,Win10HomePDF文件不易编辑,想要编辑需要转成Word,但网上的工具很多要充VIP,所以今天我们就来做个PDF转Word工具。首先先安装第三方库:pipinstalltkinter导入库:#coding=utf-8importosimporttkinterfrompdf2docximport......
  • 【873】Python读取NetCDF中的scale_factor和add_offset
    参考:python中scale的用法_在netCDF4和Python中使用scale_factor和add_offset的示例?参考代码:importnetCDF4asncdir_path="./2m_temperature/03_TIFF/"files=os.listdir(dir_path)files=sorted(files)forfileinfiles:iffile.find('.tiff')<......
  • Python基础教程06 - 循环
    循环用于重复执行一些程序块。从上一讲的选择结构,我们已经看到了如何用缩进来表示程序块的隶属关系。循环也会用到类似的写法。for循环for循环需要预先设定好循环的次数(n),然后执行隶属于for的语句n次。基本构造是for元素in序列:   statement举例来说,我们编辑一个叫forDemo......
  • 无涯教程-Python - 正则表达示
    正则表达式是特殊的字符序列,可使用模式中保留的特殊语法来帮助您匹配或查找其他字符串或字符串集。Python模块re提供对Python中类似Perl的正则表达式的全面支持。如果在编译或使用正则表达式时发生错误,则re模块会引发异常re.error。Match函数此函数尝试使用可选的标志将RE......
  • java封装、this关键字
    一,封装1,概述-指的就是把对象的属性细节隐藏起来,外部通过共有的方式来访问。2,好处-提高了代码复用性-提高了安全性3,原则-把不需要对外提供的内容都隐藏起来,根据需求提供对应的共有的访问方式。packagecom.momo.demo;/*我们在使用这个案例的过程中,发现了问题:通过对象给成员变量赋值......
  • 分享一个批量转换某个目录下的所有ppt->pdf的Python代码
    大家好,我是皮皮。一、前言前几天在Python最强王者群【Python小小小白】分享了一份Python自动化办公的代码,可以批量转换某个目录下的所有ppt->pdf,非常强大。二、实现过程在正式跑代码之后,你可能需要按照对应的库,不然会报错。代码运行之后,本地会出现下面的UI界面,选择PPT文件......
  • 学会Python Requests库+Cookies模拟自动登录!
    importrequestsurl="https://my.cheshi.com/user/"headers={"User-Agent":"Mozilla/5.0(Macintosh;IntelMacOSX10_15_7)AppleWebKit/537.36(KHTML,likeGecko)Chrome/116.0.0.0Safari/537.36"}res=requests.get(......