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
参考:
标签:sheet,name,Python,excel,writer,df1,关键字,过滤,pd From: https://www.cnblogs.com/ourweiguan/p/17658483.html