项目背景:老板需要你提供抖音平台上,男士护肤品牌的带货视频
已有数据包括:
其中每张表包含内容如下:
1.需求构思:要完成这个需求,需要考虑哪些方面
内容构思: 品牌信息(品牌名称)
带货视频标题
视频数据
视频的达人
视频脚本
2.所需要哪些工具
对于Excel而言,使用python中的pandas即可
对于word而言,通过搜索引擎,发现常用的是python-docx的第三方库,具体所需方法如下(由官方的python-docx得知需要用到以下函数)
结构: 操作: 方法:
品牌名称 样式为标题1 add_heading
视频标题 样式为标题2 add_heading
视频脚本 样式为正文 add_paragragh
3.代码实现(均在jupyter book中运行)
3.1 第一版(即一个样例-----结果见于demo1)
from docx import Document
document= Document()#相当于构建了一个空的document,之后对空的document进行操作
document.add_heading('罗杰夫',level=1)
document.add_heading('答应我,不做臭男人#糟糕是心动的感觉 #恋爱的感觉 @小奈奈✈️ #男神必备 #颜值爆表 ',level=2)
document.add_paragraph('好香的所有风云一次大步往前走')
document.save('demo1.docx')
首先明确每一条数据的样例应该是什么样子的,结果如下:
3.2第二版(按照第一版的样例得到所有数据结果--结果见于demo2)
import pandas as pd
#数据读取与处理
#读入数据表格,注意字段类型是否正确、是否被改变
video_list=pd.read_excel('video_list.xlsx')
speech_text=pd.read_excel('speech_text.xlsx')
#检查字段类型
video_list.info()
speech_text.info()
#id类型为int64,最好为str/object类型
video_list['AwemeId']=video_list['AwemeId'].astype(str)
speech_text['VideoId']=speech_text['VideoId'].astype(str)
#将两个表拼接在一起
merge=pd.merge(video_list,speech_text,how='inner',left_on='AwemeId',right_on='VideoId')
#开始数据处理
document=Document()
#访问数据
for i in range(len(merge)):
#print(merge.iloc[i]['品牌'])
document.add_heading(merge.iloc[i]['品牌'],level=1)
document.add_heading(merge.iloc[i]['视频标题'],level=2)
document.add_paragraph(merge.iloc[i]['视频文案'])
document.save('demo2.docx')
将每一条数据都按照样例设置得出,结果如下
3.3 第三版(基于第二版进行优化---结果见于demo3)
#优化1:
按照品牌名称分类,同一个品牌只出现一次 ----即品牌第一次出现时记录,第二次出现以及以后就不显示品牌了,只显示视频标题和视频文案 只需做条件判断:
条件1:当前数据的品牌是否与上一条的相同?不相同时则生成品牌,相同时则不生成 (bug:第一条是怎么比?和最后一条比吗?如果和最后一条比若相同则不生成,就出现问题了,按理说应该生成)
条件2:当索引为0时,也要生成品牌
#优化2:增加视频链接地址和达人名称,加在视频标题和视频文案之间
#优化3:将网址变成超链接的形式
#优化4:不建立word文档,能不能直接生成在线文档
#3,4不知道咋操作目前
document=Document()
#访问数据
for i in range(len(merge)):
if merge.iloc[i]['品牌'] != merge.iloc[i-1]['品牌'] or i==0:
document.add_heading(merge.iloc[i]['品牌'],level=1)
document.add_heading(merge.iloc[i]['视频标题'],level=2)
document.add_paragraph(f'达人昵称:{merge.iloc[i]["BloggerName"]}')
document.add_paragraph(f'视频地址:douyin.com/video/{merge.iloc[i]["AwemeId"]}')
document.add_paragraph(merge.iloc[i]['视频文案'])
document.save('demo3.docx')
结果如下:
(通过学习b站戴戴戴师兄数据分析课程----学习笔记1)