df2['日期'] = df.iloc[[ i+1for i in range(0,len(df),3)],[0]].reset_index()[0] df2['时间'] = df.iloc[[ i+2for i in range(0,len(df),3)],[0]].reset_index(drop=True) df2['入账金额'] = df.iloc[[ i+1for i in range(0,len(df),3)],[1]].reset_index(drop=True) df2['交易说明'] = df.iloc[[ i+2for i in range(0,len(df),3)],[1]].reset_index(drop=True)
import pandas as pd import xlrd from docx import Document from docx.shared import Pt from docx.shared import Inches from docx.oxml.ns import qn from docx.enum.text import WD_PARAGRAPH_ALIGNMENT from docx.enum.section import WD_ORIENTATION
基本流程很简单,读入无填报记录的数据,按日期输出 word 文档。
defwu_to_word(filepath): df = pd.read_excel(filepath, sheet_name="无") date_list = list(df['日期']) for d in date_list: filename = wordname+str(d)+").docx"# 输出的word文件名 title = "("+str(d)[:4]+"."+str(d)[4:6]+"."+str(d)[6:8]+")"# 副标题日期XXXX.XX.XX word = str(d)[:4]+"年"+str(d)[4:6]+"月"+str(d)[6:8]+"日"# 开头、落款日期XXXX年XX月XX日 wu_doc(title, word, filename) print(f"文件:{filename},{title},{word} 已保存")
defget_sentence(df_total, df_index): df_oneday = df_total[df_index] num = df_oneday['填报部门'].nunique() # 部门的数量 group = [] # 部门名称 detail = [] # 组合某个部门的数据,其中元素为元组格式(, , , ) info = ''# 报送情况描述 for item in df_oneday.groupby('填报部门'): group.append(item[0]) detail.append( list( zip( list(item[1]['报送内容']), list(item[1]['记录数']), list(item[1]['是否上报']), list(item[1]['备注']) ) ) ) for index, g in enumerate(group): # 整理每个部门的填报情况 mes = str(g)+':'# 部门开头 for i in range(len(detail[index])): _mes = detail[index][i] if int(_mes[1])>0: mes = mes + f'“{_mes[0]}”{_mes[1]}条记录;' info = info + mes info = info[:-1]+"。"#将最后一个分号替换成句号 sentence = f"有{num}个部门报送了数据:{info}" return sentence
rows = len(table)+1 word_table = doc.add_table(rows=rows, cols=6, style='Table Grid') # 创建rows行、6列的表格 word_table.autofit=True# 添加框线 table = [table_title] + table # 固定的表头+表数据 for row in range(rows): # 写入表格 cells = word_table.rows[row].cells for col in range(6): cells[col].text = str(table[row][col]) for i in range(len(word_table.rows)): # 遍历行列,逐格修改样式 for j in range(len(word_table.columns)): for par in word_table.cell(i, j).paragraphs: # 修改字号 for run in par.runs: run.font.size = Pt(10.5) for par in word_table.cell(0, j).paragraphs: # 第一行加粗 for run in par.runs: run.bold = True doc.save(dir+filename)
第一步,在注册账号之后,打开 API 密钥管理页面(https://console.cloud.tencent.com/cam/capi)获取到 SecretId 和 SecretKey。
第二步,安装腾讯云的 SDK
pip3 install tencentcloud-sdk-python
人脸属性
在人脸年龄变化 API 中有一个 AgeInfo 参数,它包含了 Age 和 FaceRect 两个属性,其中 FaceRect 属性必须填人脸在照片中基于左上角的 X、Y 坐标和人脸的高度与宽度。所以先要调用人脸检测与分析 API 得到这些数据。
下面的示例图是在百度图片中截取的。
import json import base64 from tencentcloud.common import credential from tencentcloud.common.profile.client_profile import ClientProfile from tencentcloud.common.profile.http_profile import HttpProfile from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException from tencentcloud.iai.v20200303 import iai_client from tencentcloud.iai.v20200303 import models as models03
import json from tencentcloud.common import credential from tencentcloud.common.profile.client_profile import ClientProfile from tencentcloud.common.profile.http_profile import HttpProfile from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException from tencentcloud.ft.v20200304 import ft_client, models