pomscripts/searchALL.py

573 lines
25 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import pandas as pd
from openpyxl import Workbook
import numpy as np
import seaborn as sns
import datetime, time
import matplotlib.pyplot as plt
import re,os
regIDCard = r"\d{18}|\d{17}[X|x]"
regCellPhone = r"1[3584]\d{9}"
regSTR = '习近平总同志|习近同志|习近总书记|习平总书记|习近平主义|习总同志' + \
'|习近平治国理政|中国是现代化' + \
'|中华人名|中共民族|名族|中央人名|中华民主' + \
'|中共共产党|中国共产党党章' + \
'|伟大复习|建档伟业|建档百年' + \
'|二十大大|二十精神|二十大开幕式|中国共产党第二十次代表大会|党二十大|第二十次全国人民代表大会' + \
'|建党七十三周年|共产党成立七十三周年' + \
'|大人代表|大人常委会|人大常委主任' + \
'|爱爱服务|抗议英雄|反炸中心'
regSTR = '网络意识形态工作责任制实施细则|意识形态工作责任制实施办法'
regSTR = r'(?=.*西藏)(?=.*劳务)'
regSTRA = r'藏族|西藏'
regSTRB = r'劳务|用工|转移|输出|输转|就业|职业培训|技能培训|高校毕业生'
regSTRAB = r'藏族|西藏|劳务|用工|转移|输出|输转|就业|职业培训|技能培训|高校毕业生'
paths = [
'D:/Projects/POM/DATA/2023年6月/季度报告/全文/',
'D:/Projects/POM/DATA/2023年6月/5月报告/全文/',
'D:/Projects/POM/DATA/2023年5月/4月报告/全文/',
'D:/Projects/POM/DATA/2023年4月/3月报告/全文/',
'D:/Projects/POM/DATA/2023年3月/2月报告/全文/',
'D:/Projects/POM/DATA/2023年2月/1月报告/全文/',
'D:/Projects/POM/DATA/2023年1月/12月报告/全文/',
]
paths = ['D:/Projects/POM/DATA/2022年/2022年12月/11月报告/全文/',
'D:/Projects/POM/DATA/2022年/2022年11月/10月报告/全文/',
'D:/Projects/POM/DATA/2022年/2022年10月/9月报告/全文/',
'D:/Projects/POM/DATA/2022年/2022年9月/8月报告/全文/',
'D:/Projects/POM/DATA/2022年/2022年8月/7月报告/全文/',
'D:/Projects/POM/DATA/2022年/2022年7月/6月报告/全文/',
'D:/Projects/POM/DATA/2022年/2022年6月/5月报告/全文/',
'D:/Projects/POM/DATA/2022年/2022年5月/4月报告/全文/',
'D:/Projects/POM/DATA/2022年/2022年4月/3月报告/全文/',
'D:/Projects/POM/DATA/2022年/2022年3月/2月报告/全文/',
'D:/Projects/POM/DATA/2022年/2022年2月/1月报告/全文/',]
"""
'''
#'D:/Projects/POM/DATA/2022年11月/10月报告/全文/',
#'D:/Projects/POM/DATA/2022年12月/11月报告/全文/',
#'D:/Projects/POM/DATA/2023年1月/12月报告/全文/',
#'D:/Projects/POM/DATA/2023年2月/1月报告/全文/',
#'D:/Projects/POM/DATA/2023年3月/2月报告/全文/',
'''
'''
'D:/Projects/POM/DATA/2023年3月/两会/全文数据3月6日',
'D:/Projects/POM/DATA/2023年3月/两会/全文数据3月7日',
'D:/Projects/POM/DATA/2023年3月/两会/全文数据3月8日',
'D:/Projects/POM/DATA/2023年3月/两会/全文数据3月9日',
'D:/Projects/POM/DATA/2023年3月/两会/全文数据3月9日',
'D:/Projects/POM/DATA/2023年3月/两会/全文数据3月10日',
'D:/Projects/POM/DATA/2023年3月/两会/全文数据3月11日',
'D:/Projects/POM/DATA/2023年3月/两会/全文数据3月12日',
'D:/Projects/POM/DATA/2023年3月/两会/全文数据3月13日',
''' """
pathO = 'D:/Projects/POM/DATA/search/'
doWX = True
doWB = True
doTT = True
splitByCity = True
#监测已发现的敏感词
fFound = [
#'D:/Projects/POM/DATA/2023年3月/2月报告/汇总/mgc.xlsx',
#'D:/Projects/POM/DATA/2023年2月/1月报告/汇总/mgc.xlsx',
#'D:/Projects/POM/DATA/2023年1月/12月报告/汇总/mgc.xlsx',
#'D:/Projects/POM/DATA/2022年12月/11月报告/汇总/mgc.xlsx',
#'D:/Projects/POM/DATA/2022年11月/10月报告/汇总/mgc.xlsx',
#'D:/Projects/POM/DATA/2022年10月/9月报告/汇总/mgc.xlsx',
#'D:/Projects/POM/DATA/2022年9月/8月报告/汇总/mgc.xlsx',
#'D:/Projects/POM/DATA/2022年8月/7月报告/汇总/mgc.xlsx',
#'D:/Projects/POM/DATA/2022年7月/6月报告/汇总/mgc.xlsx'
'D:/Projects/POM/DATA/2023年3月/两会/汇总/敏感词2023.3.5.xlsx',
'D:/Projects/POM/DATA/2023年3月/两会/汇总/敏感词2023.3.6.xlsx',
'D:/Projects/POM/DATA/2023年3月/两会/汇总/敏感词2023.3.7.xlsx',
'D:/Projects/POM/DATA/2023年3月/两会/汇总/敏感词2023.3.9.xlsx',
'D:/Projects/POM/DATA/2023年3月/两会/汇总/敏感词扫描结果.xlsx' ]
#通报结果
fInformed = ['D:/Projects/POM/DATA/国办通报/20230303错敏词.xlsx',
'D:/Projects/POM/DATA/国办通报/20230304错敏词.xlsx']
######################################################################################
def getWBData(path, hasBody=False):
dictC = {'LZ':'兰州市', 'LX':'临夏回族自治州', 'JC':'金昌市', 'ZY':'张掖市', 'LN':'陇南市', 'JYG':'嘉峪关市', 'TS':'天水市',
'GN':'甘南藏族自治州', 'BY':'白银市', 'JQ':'酒泉市', 'QY':'庆阳市', 'PL':'平凉市', 'DX':'定西市', 'WW':'武威市', 'SZ':'省直部门',
'lz': '兰州市', 'lx': '临夏回族自治州', 'jc': '金昌市', 'zy': '张掖市', 'ln': '陇南市', 'jyg': '嘉峪关市', 'ts': '天水市',
'gn': '甘南藏族自治州', 'by': '白银市', 'jq': '酒泉市', 'qy': '庆阳市', 'pl': '平凉市', 'dx': '定西市', 'ww': '武威市', 'sz': '省直部门'
}
strC = ''
for k,v in dictC.items():
if k in path:
strC = v
break
print('-----------------------------------')
print('CITY =', strC )
dirCs = os.listdir(path)
cs = ['微博id', '微博正文', '头条文章url', '原始图片url', '被转发微博原始图片url', '是否为原创微博', '微博视频url', '发布位置', '发布时间', '发布工具', '点赞数',
'转发数', '评论数', 'weiboID', '账号名称', '市州']
dfWB = pd.DataFrame(columns=cs)
for dirC in dirCs:
#第一层不是目录或者目录名里有weixin跳过
sc = os.path.join(path, dirC)
if not os.path.isdir(sc):
continue
if 'weixin' in dirC.lower():
continue
if 'tt' in dirC.lower():
continue
# 时段 weibo weibo_1
cols = ['微博id', '微博正文', '头条文章url', '原始图片url', '被转发微博原始图片url', '是否为原创微博', '微博视频url', '发布位置', '发布时间', '发布工具', '点赞数',
'转发数', '评论数'] #WB下载工具中的格式
dfWBC = pd.DataFrame(columns=cols)
dirCTs = os.listdir(sc)
for dirCT in dirCTs:
# 账号名称 清水司法
sct = os.path.join(path, dirC, dirCT)
if not os.path.isdir(sct):
continue
if 'weixin' in dirC.lower():
continue
if 'tt' in dirC.lower():
continue
#print('--',dirCT)
# 账号名称
wbName = dirCT
dirAs = os.listdir(sct)
for dirA in dirAs:
scta = os.path.join(path, dirC, dirCT, dirA)
# 文件名
fileAs = scta
if len(fileAs) > 0 and os.path.splitext(fileAs)[1] == '.csv':
wbId = dirA[:-4]
# 读取文件
#########print('----',wbName, wbId)
dfdfwb = pd.read_csv(fileAs, sep=',', header=None, names=cols,
index_col=None)#, engine='python', encoding='gbk'#utf-8
dfdfwb = dfdfwb[1:]
dfdfwb["weiboID"] = wbId
dfdfwb["账号名称"] = wbName
dfWBC = dfWBC.append(dfdfwb)
print('.', end='')
#if len(fileAs)>1:
# print(" +=+= ", fileAs)
#print(dfWBC.shape)
#dfWBC.to_excel("D:/Projects/POM/2021年6月/二季度/全文/WB/WB_"+dirC+".xlsx")cl
#print(dirC)
#print( dictC[dirC])
#print( dfWBC['市州'])
dfWBC['市州'] = strC
dfWB = dfWB.append(dfWBC)
print(' ')
#print('-',dirC, dfWB.shape[0])
print('-',dirC, dfWBC.shape[0])
print('',dfWB.shape[0])
#dfWB.to_excel("D:/Projects/POM/2021年7月/2021年上半年/WB_ALL.xlsx")
return dfWB
def getWBData_Province(path, hasBody=False):
dirCs = os.listdir(path)
cs = ['微博id', '微博正文', '头条文章url', '原始图片url', '被转发微博原始图片url', '是否为原创微博', '微博视频url', '发布位置', '发布时间', '发布工具', '点赞数',
'转发数', '评论数', 'weiboID', '账号名称', '市州']
dfWB = pd.DataFrame(columns=cs)
for dirC in dirCs:
sc = os.path.join(path, dirC)
if not os.path.isdir(sc):
continue
dfWB = dfWB.append(getWBData(sc, hasBody))
dfWB['标题']=''
dfWB.rename(columns={"微博正文": "内容", "发布时间": "日期"},inplace=True)
return dfWB
def getWXData_Province(path, hasBody=False):
cs = ['公众号', '链接', '日期', '标题', '内容', '阅读数', '在看数', '点赞数', 'get_time', '头条',]
dfWX = pd.DataFrame(columns=cs)
dictC = {'LZ':'兰州市', 'LX':'临夏回族自治州', 'JC':'金昌市', 'ZY':'张掖市', 'LN':'陇南市', 'JYG':'嘉峪关市', 'TS':'天水市',
'GN':'甘南藏族自治州', 'BY':'白银市', 'JQ':'酒泉市', 'QY':'庆阳市', 'PL':'平凉市', 'DX':'定西市', 'WW':'武威市', 'SZ':'省直部门',
'lz': '兰州市', 'lx': '临夏回族自治州', 'jc': '金昌市', 'zy': '张掖市', 'ln': '陇南市', 'jyg': '嘉峪关市', 'ts': '天水市',
'gn': '甘南藏族自治州', 'by': '白银市', 'jq': '酒泉市', 'qy': '庆阳市', 'pl': '平凉市', 'dx': '定西市', 'ww': '武威市', 'sz': '省直部门'
}
files=[]
dirCs = os.listdir(path)
for dirC in dirCs:
if dirC[:1]=='.':
continue
sc = os.path.join(path, dirC)
# 判断市州名称
strC = ''
for k,v in dictC.items():
if k in sc:
strC = v
break
print('-', strC)
# 市州 dirC PL
if os.path.isdir(sc):
dirCCs = os.listdir(sc)
for dirCC in dirCCs:
scc = os.path.join(sc,dirCC)
# 文件
if dirCC[:1]=='.':
continue
if not os.path.isdir(scc):
#print(dirCC, dirCC[-5:] )
if (dirCC[-5:]=='.xlsx' or dirCC[-4:]=='.xls') and not dirCC.startswith('~'):
files.append(scc)
#print(scc)
dfcc = pd.read_excel(scc) # , engine='openpyxl'
dfcc['市州'] = strC
dfWX = dfWX.append(dfcc)
print(' ', dirCC, dfcc.shape[0])
else:
print('something error 01: ', dirCC)
else:
if (dirC[-5:]=='.xlsx' or dirC[-4:]=='.xls') and not dirCC.startswith('~'):
files.append(sc)
#print(sc)
dfc = pd.read_excel(sc)
dfcc['市州'] = strC
dfWX = dfWX.append(dfc)
print(' ', dirC, dfc.shape[0])
else:
print('something error 02')
print(' ', dfWX.shape[0])
print('ALL WX data', dfWX.shape[0])
return dfWX
# 从数据目录中读取xlsx文件拼接到一起
def getTTData(path, cities, hasBody=False):
# cityShorten
cityShorten = {'LZ':'兰州市', 'LX':'临夏回族自治州', 'JC':'金昌市', 'ZY':'张掖市', 'LN':'陇南市', 'JYG':'嘉峪关市',
'TS':'天水市', 'GN':'甘南藏族自治州', 'BY':'白银市', 'JQ':'酒泉市', 'QY':'庆阳市', 'PL':'平凉市',
'DX':'定西市', 'WW':'武威市', 'SZ':'省直部门', 'XQ': '兰州新区', 'LZXQ': '兰州新区',
'lz': '兰州市', 'lx': '临夏回族自治州', 'jc': '金昌市', 'zy': '张掖市', 'ln': '陇南市', 'jyg': '嘉峪关市',
'ts': '天水市', 'gn': '甘南藏族自治州', 'by': '白银市', 'jq': '酒泉市', 'qy': '庆阳市', 'pl': '平凉市',
'dx': '定西市', 'ww': '武威市', 'sz': '省直部门', 'xq': '兰州新区', 'lzxq': '兰州新区',
'白银': '白银市', '定西': '定西市', '酒泉': '酒泉市', '嘉峪关': '嘉峪关市', '陇南': '陇南市',
'临夏': '临夏回族自治州', '平凉': '平凉市', '庆阳': '庆阳市', '天水': '天水市', '武威': '武威市', '新区': '兰州新区',
'兰州': '兰州市', '张掖': '张掖市', '甘南': '甘南藏族自治州', '省直': '省直部门', '金昌': '金昌市',
}
dirCs = os.listdir(path)
#account date title nread ncomment content url origin
cs = ['account', 'date', 'title', 'nread', 'ncomment', 'content', 'url', 'origin', 'city']
dfTT = pd.DataFrame(columns=cs)
cityCount = 0
for dirC in dirCs:
if dirC[:1] == '.' \
or not os.path.isdir(os.path.join(path, dirC)) \
or 'weixin' in dirC.lower() \
or 'weibo' in dirC.lower() \
or not cityShorten[dirC] in cities:
continue
cityCount += 1
# City LN
dfTTC = pd.DataFrame(columns=cs)
dirCTs = os.listdir(os.path.join(path, dirC))
for dirCT in dirCTs:
if dirCT[:1] == '.' \
or not os.path.isdir(os.path.join(path, dirC, dirCT)) \
or 'weixin' in dirCT.lower() \
or 'weibo' in dirCT.lower():
continue
if 'tt' in dirCT.lower() or dirC.lower() in dirCT.lower():
fns = os.listdir(os.path.join(path, dirC, dirCT))
numc = 0
accounts = set()
for fn in fns:
if os.path.isdir(os.path.join(path, dirC, dirCT, fn)):
print(' >>',fn)
sds = os.listdir(os.path.join(path, dirC, dirCT, fn))
for sd in sds:
if sd[:1] == '.' or not sd[-5:] == '.xlsx' or sd.count('_') < 2:
continue
ttName = sd[sd.index('_')+1:]
ttName = ttName[:ttName.index('_')]
fileAs = os.path.join(path, dirC, dirCT, fn, sd)
#print(' ', ttName, fileAs)
if len(fileAs) > 0:
dfdftt = pd.read_excel(fileAs)
dfTTC = dfTTC.append(dfdftt, ignore_index=True)
numc = numc+1
accounts.add(ttName)
print('.', end='')
print(' ')
#
if fn[:1] == '.' or not fn[-5:] == '.xlsx' or fn.count('_') < 2:
continue
#print('---',fn)
# 账号名称
ttName = fn[fn.index('_')+1:]
ttName = ttName[:ttName.index('_')]
fileAs = os.path.join(path, dirC, dirCT, fn)
#print(' ', ttName, fileAs)
if len(fileAs) > 0:
try:
dfdftt = pd.read_excel(fileAs)
except:
print('')
print("!!!!!!! 读取头条文件出错: ", fileAs)
if not dfdftt.empty:
dfTTC = dfTTC.append(dfdftt, ignore_index=True)
numc = numc+1
accounts.add(ttName)
print('.', end='')
print(' ')
print(' +', cityShorten[dirC], 'dir:', dirC, '/', dirCT, '账号数', len(accounts),'文件数', numc, '文章数', dfTTC.shape[0])
dfTTC['city'] = cityShorten[dirC]
dfTT = dfTT.append(dfTTC)
print('Read TT DIR finished. cities', cityCount, '; lines', dfTT.shape)
#dfTT.to_excel("D:/Projects/POM/2021年7月/2021年上半年/WB_ALL.xlsx")
return dfTT
#######################################################
#######################################################
t0 = datetime.datetime.now()
df = pd.DataFrame()
# WX
if doWX:
dfWX = pd.DataFrame()
for path in paths:
ddff = getWXData_Province(path)
print(' read WX data', ddff.shape)
dfWX = dfWX.append(ddff)
print('WX data ', dfWX.shape)
# 查找关键词
dfwxd = dfWX[['市州', '公众号', '日期', '标题', '链接', '内容', '阅读数']][dfWX['内容'].str.contains(regSTRA, regex=True, na=False) & dfWX['内容'].str.contains(regSTRB, regex=True, na=False)]
dfwxd['类型'] = '微信'
dfwxd['关键词']=''
dfwxd['上下文']=''
print("Found ", dfwxd.shape)
dfwxd = dfwxd.reset_index()
# 提取上下文
iiii=0
for i,r in dfwxd.iterrows():
string = str(dfwxd.loc[iiii,'内容'])
its = re.finditer(regSTRAB, string)
sk = ''
sp = ''
for it in its:
s=0
e=len(string)
d = 5
if it.start()>d:
s = it.start()-d
if (it.end()< e-d):
e = it.end()+d
sk += it.group() + ';'
sp += string[s:e] + ';'
dfwxd.loc[iiii,'关键词'] = sk[:-1]
dfwxd.loc[iiii,'上下文'] = sp[:-1]
iiii = iiii+1
dfwxd.rename(columns={"阅读数": "阅读数/评论数", "公众号": "账号名称"},inplace=True)
dfwxd = dfwxd[['关键词', '上下文', '日期', '市州', '类型', '账号名称', '链接', '标题', '阅读数/评论数', '内容',]]
df = df.append(dfwxd)
# WB
if doWB:
dfWB = pd.DataFrame()
for path in paths:
dfWBff = getWBData_Province(path)
print('read WB data', dfWBff.shape)
dfWB = dfWB.append(dfWBff)
print("WB Data ", dfWB.shape)
# 查找关键词
dfwbd = dfWB[['市州', '账号名称', '标题', '日期', '评论数', '内容']][dfWB['内容'].str.contains(regSTRA, regex=True, na=False) & dfWB['内容'].str.contains(regSTRB, regex=True, na=False)]
dfwbd['类型'] = '微博'
dfwbd['关键词'] = ''
dfwbd['上下文'] = ''
print("WB Found ", dfwbd.shape)
# 提取关键词上下文
dfwbd = dfwbd.reset_index()
iiii = 0
for i, r in dfwbd.iterrows():
string = str(dfwbd.loc[iiii, '内容'])
its = re.finditer(regSTRAB, string)
sk = ''
sp = ''
for it in its:
s = 0
e = len(string)
d = 5
if it.start() > d:
s = it.start() - d
if (it.end() < e - d):
e = it.end() + d
sk += it.group() + ';'
sp += string[s:e] + ';'
dfwbd.loc[iiii, '关键词'] = sk
dfwbd.loc[iiii, '上下文'] = sp
iiii = iiii + 1
dfwbd.rename(columns={"评论数": "阅读数/评论数"},inplace=True)
dfwbd = dfwbd[['关键词', '上下文', '日期', '市州', '类型', '账号名称', '标题', '阅读数/评论数', '内容',]]
df = df.append(dfwbd)
#######################################################
# TT
if doTT:
cities = [
'临夏回族自治州',
'白银市',
'定西市',
'酒泉市',
'嘉峪关市',
'平凉市',
'庆阳市',
'天水市',
'武威市',
'兰州新区',
'陇南市',
'兰州市', '张掖市', '甘南藏族自治州', '金昌市',
'省直部门', # 共12市2州1新区
]
dfTT = pd.DataFrame()
for strP in paths:
print("read TT data ", strP)
ddff = getTTData(strP, cities)
dfTT = dfTT.append(ddff)
print("TT data", dfTT.shape)
#account date title nread ncomment content url origin city
# 查找关键词
dfttd = dfTT[['city', 'account', 'date', 'title', 'url', 'content', 'nread']][dfTT['content'].str.contains(regSTRA, regex=True, na=False) & dfTT['content'].str.contains(regSTRB, regex=True, na=False)]
dfttd['类型'] = '头条'
dfttd['关键词']=''
dfttd['上下文']=''
print("Found ", dfttd.shape)
# 提取上下文
dfttd = dfttd.reset_index()
iiii = 0
for i,r in dfttd.iterrows():
string = str(dfttd.loc[iiii, 'content'])
its = re.finditer(regSTRAB, string)
sk = ''
sp = ''
for it in its:
s=0
e=len(string)
d = 5
if it.start()>d:
s = it.start()-d
if (it.end()< e-d):
e = it.end()+d
sk += it.group() + ';'
sp += string[s:e] + ';'
dfttd.loc[iiii,'关键词'] = sk[:-1]
dfttd.loc[iiii,'上下文'] = sp[:-1]
iiii = iiii + 1
dfttd.rename(columns={'city': "市州", 'account': "账号名称", 'date': "日期", 'title': "标题", 'url':'链接', 'content': "内容", "nread": "阅读数/评论数"},inplace=True)
dfttd = dfttd[['关键词', '上下文', '日期', '市州', '类型', '账号名称', '链接', '标题', '阅读数/评论数', '内容',]]
df = df.append(dfttd)
#################################
print('扫描完成,发现敏感词', df.shape[0])
df['date'] = pd.to_datetime(df['日期'])
df['identifier'] = df['账号名称'].map(str) + '_' + df['date'].map(lambda x:str(x.year)+str(x.month).rjust(2,'0')+str(x.day).rjust(2,'0'))
print('读取已发现的敏感词文件')
dfFound = pd.DataFrame()
for f in fFound:
dff = pd.read_excel(f)
print(' ', f, dff.shape)
dfFound = dfFound.append(dff, ignore_index=True)
#错误 建议 账号类型 账号名称 错误出现位置 发文时间 标题 市州
dfFound['date'] = pd.to_datetime(dfFound['发文时间'])
dfFound['identifier'] = dfFound['账号名称'].map(str) + '_' + dfFound['date'].map(lambda x:str(x.year)+str(x.month).rjust(2,'0')+str(x.day).rjust(2,'0'))
print('', dfFound.shape[0])
print('读取国办通报数据')
dfInformed = pd.DataFrame()
for f in fInformed:
dfff = pd.read_excel(f)
print(' ', f, dfff.shape[0])
dfInformed = dfInformed.append(dfff, ignore_index=True)
#序号 所属省份/部委 市州 公众号名称 运营主体 文章标题 文章链接 文章发布时间 是否转办 问题摘要 整改情况 监测情况
dfInformed['date'] = pd.to_datetime(dfInformed['文章发布时间'])
dfInformed['identifier'] = dfInformed['公众号名称'].map(str) + '_' + dfInformed['date'].map(lambda x:str(x.year)+str(x.month).rjust(2,'0')+str(x.day).rjust(2,'0'))
print('', dfInformed.shape[0])
print('标记被监测出的和被通报的')
#扫描结果中标记被监测出的和被通报的
df['监测'] = df['identifier'].isin(dfFound['identifier'])
df['通报'] = df['identifier'].isin(dfInformed['identifier'])
'''
print('监测结果中标记被扫描出的和被通报的')
#监测结果中标记被扫描出的和被通报的
dfFound['扫描'] = dfFound['identifier'].isin(dfScan['identifier'])
dfFound['通报'] = dfFound['identifier'].isin(dfInformed['identifier'])
print('通报结果中标记被扫描出的和被监测出的')
#通报结果中标记被扫描出的和被监测出的
dfInformed['扫描'] = dfInformed['identifier'].isin(dfScan['identifier'])
dfInformed['监测'] = dfInformed['identifier'].isin(dfFound['identifier'])
'''
print('去掉已标记内容')
dfO = df.loc[(df['监测']==False) & (df['通报']==False)].copy()
print(dfO.shape)
#################################
#输出
sss = datetime.datetime.now().strftime("%Y-%m-%d_%H.%M.%S")
pathO = pathO + sss + '/'
if not os.path.exists(pathO):
os.makedirs(pathO)
dfO.drop(['date', 'identifier', '监测', '通报'],axis=1, inplace=True)
dfO.to_excel(pathO + sss + ".xlsx", index=False)
if splitByCity:
print('按市州输出')
cities = dfO['市州'].unique()
for city in cities:
dft = dfO[dfO['市州'].isin([city])]
# exec("df%s = dft"%cityNum)
dft.to_excel(pathO + city+'.xlsx', index=False)
#计时
t = datetime.datetime.now() - t0
print('用时{}{}{}'.format(int(t.seconds/3600),int(t.seconds/60), t.seconds%60))