day20周末作业


import openpyxl
import time

time1 = time.time()

wb = openpyxl.load_workbook('files/某视频网站运营数据.xlsx')
sheet1 = wb.active
max_row = sheet1.max_row
max_column = sheet1.max_column


# 1. 找出点赞数在100000次以上的视频ID、标题和赞数
print('----------------------------1题----------------------------')

for column in range(2, max_row + 1):
    if sheet1.cell(column, 6).value > 100000:
        print(
            f'视频ID:{sheet1.cell(column, 1).value},标题:{sheet1.cell(column, 2).value},赞数:{sheet1.cell(column, 6).value}')


# 2. 按照视频ID唯一的原则对原数据去重,创建一个新的表保存已经去重后的所有数据
print('----------------------------2题----------------------------')
if 'new_sheet' in wb.sheetnames:
    sheet2 = wb['new_sheet']
else:
    sheet2 = wb.create_sheet('new_sheet')

s = []
for i in range(1, max_row + 1):
    if sheet1.cell(i, 1).value not in s:
        for j in range(1, max_column + 1):
            s.append(sheet1.cell(i, j).value)

for i in range(1, max_row + 1):
    for j in range(1, max_column + 1):
        if s:
            sheet2.cell(i, j).value = s[0]
            del s[0]


# 3. 从已经去重的数据中找出点赞数排前10名的视频信息
print('----------------------------3题----------------------------')
likes = []
print('点赞数排前10名的视频信息:')
max_row_two = sheet2.max_row
max_column_two = sheet2.max_column
for i in range(2, max_row_two + 1):
    likes.append(sheet2.cell(i, 6).value)
    likes.sort(reverse=True)

for x in range(2, max_row_two + 1):
    if sheet2.cell(x, 6).value in likes[0:10]:
        for j in range(1, max_column_two + 1):
            print(f"{sheet2.cell(x, j).value}")
        print()


# 4. 打印每个频道对应的发布的视频数量
print('----------------------------4题----------------------------')
channels = []
for i in range(2, max_row + 1):
    s = sheet1.cell(i, 3).value
    channels.append(s)

channels_set = set(channels)
for j in channels_set:
    print(f'频道:{j}  视频数量:{channels.count(j)}')


# 5. 打印热度最高前三个视频的ID、标题、观看数量、点赞数量和评论数量
print('----------------------------5题----------------------------')
views = []
for i in range(2, max_row + 1):
    views.append(int(sheet1.cell(i, 5).value))
x = sorted(views, reverse=True)

for j in range(2, max_row + 1):
    if sheet1.cell(j, 5).value == x[0]:
        print(f'排名第一视频的ID:{sheet1.cell(j, 1).value}')
        print(f'标题:{sheet1.cell(j, 2).value}')
        print(f'观看数量:{sheet1.cell(j, 5).value}')
        print(f'点赞数量:{sheet1.cell(j, 6).value}')
        print(f'评论数量:{sheet1.cell(j, 8).value}')
        print()
    if sheet1.cell(j, 5).value == x[1]:
        print(f'排名第二视频的ID:{sheet1.cell(j, 1).value}')
        print(f'标题:{sheet1.cell(j, 2).value}')
        print(f'观看数量:{sheet1.cell(j, 5).value}')
        print(f'点赞数量:{sheet1.cell(j, 6).value}')
        print(f'评论数量:{sheet1.cell(j, 8).value}')
        print()
    if sheet1.cell(j, 5).value == x[2]:
        print(f'排名第三视频的ID:{sheet1.cell(j, 1).value}')
        print(f'标题:{sheet1.cell(j, 2).value}')
        print(f'观看数量:{sheet1.cell(j, 5).value}')
        print(f'点赞数量:{sheet1.cell(j, 6).value}')
        print(f'评论数量:{sheet1.cell(j, 8).value}')
        print()


# 6. 根据上面的结果找出热门频道(“播放数+赞数+评论数”总和最高的前10名)。
print('----------------------------6题----------------------------')
hot_channel = []
for i in range(2, max_row + 1):
    count = int(sheet1.cell(i, 5).value) + int(sheet1.cell(i, 6).value) + int(sheet1.cell(i, 8).value)
    hot_channel.append(count)
x1 = sorted(hot_channel, reverse=True)

hot_channel1 = x1[0:10]
for i in range(2, max_row + 1):
    if (int(sheet1.cell(i, 5).value) + int(sheet1.cell(i, 6).value) + int(sheet1.cell(i, 8).value)) in hot_channel1:
        print(f'前10名热门频道:{sheet1.cell(i, 3).value}')
        print(
            f'播放数+赞数+评论数:{int(sheet1.cell(i, 5).value) + int(sheet1.cell(i, 6).value) + int(sheet1.cell(i, 8).value)}')
        print()
wb.save('files/某视频网站运营数据.xlsx')
print()
print('---------------------------运行时间------------------------------')
print(f'运行时间为:{time.time() - time1:.2f}秒')
SELECT t.occur_time, t.specific_time, CASE change_type WHEN '1' THEN '人' WHEN '2' THEN '机' WHEN '3' THEN '料' WHEN '4' THEN '法' WHEN '5' THEN '变' ELSE '其他' end change_type, t.p_name, t.proc_id, t.change_content, t.first_workpiece, case t.first_workpiece_status when '1' then 'OK' when '2' then 'NG' when '3' then '--' else '其他' end first_workpiece_status, t.reach_workpiece, case t.reach_workpiece_status when '1' then 'OK' when '2' then 'NG' when '3' then '--' else '其他' end reach_workpiece_status, t.change_purpose, t.risk, t.precautions, t.dept, t.groups , rep_top_id, process FROM TB_CHANGE_RESUME t where 1=1 and change_content is not null ${if(len(开始日期) == 0,"","and occur_time >= '" + 开始日期 + "'")} ${if(len(结束日期) == 0,"","and occur_time <= '" + 结束日期 + "'")} ${if(len(部门) == 0,"","and dept = '" + 部门 + "'")} ${if(len(班组) == 0,"","and groups = '" + 班组 + "'")} ${if(len(分类) == 0,"","and change_type = '" + 分类 + "'")} ${if(len(首件号码) == 0,"","and first_workpiece like '%" + 首件号码 + "%'")} ${if(len(末件号码) == 0,"","and reach_workpiece like '%" + 末件号码 + "%'")} ${if(len(姓名品名) == 0,"","and p_name like '%" + 姓名品名 + "%'")} ${if(len(变更内容) == 0,"","and change_content like '%" + 变更内容 + "%'")} and groups ='总装1组' and dept='第3制造科' ORDER BY occur_time desc 得出数据: 列名: occur_time specific_time change_type p_name proc_id change_content first_workpiece first_workpiece_status reach_workpiece reach_workpiece_status change_purpose risk precautions dept groups rep_top_id process 内容: 2025/12/17 09:15:00 料 缸盖螺栓L125 9 初品上线使用 ET16585 OK -- -- 0Q7生产线变更 4 确认品质 第3制造科 总装1组 882474 已完成 2025/12/17 09:57:00 人 陈彬强 线外 年休一天 --- -- --- -- 休假 4 业务交接 第3制造科 总装1组 882474 已完成 2025/12/17 10:07:00 人 缸盖螺栓H001 9 初品上线使用 ET16634 OK -- -- 0Q7生产线变更 4 确认品质 第3制造科 总装1组 882474 已完成 2025/12/17 10:28:00 料 2.0普通机型固定支架 17 2.0普通机型固定支架重上线使用 ET16639 OK ET16655 OK 缸盖导管不良分解机部品重上线 4 品管确认OK,部品正常流动 第3制造科 总装1组 882474 已完成 2025/12/17 10:30:00 料 2.0普通机型固定支架 17 2.0 HV机型固定支架重上线使用 ET16636 OK 其他 缸盖导管不良分解机部品重上线 4 品管确认OK,部品正常流动 第3制造科 总装1组 882474 已完成 2025/12/17 10:32:00 料 空调支架 13 空调支架重上线使用 ET16637 OK ET16663 OK 缸盖导管不良分解部品重上线 4 品管确认OK,部品正常流动 第3制造科 总装1组 883872 已完成 2025/12/17 10:35:00 料 皮带轮张紧器 19 皮带轮张紧器重上线使用 ET16651 OK 其他 缸盖导管不良分解部品重上线 4 品管确认OK,部品正常流动 第3制造科 总装1组 883872 已完成 2025/12/17 00:37:00 料 缸体 1 缸盖导管不良分解机 ES78899 OK -- -- 缸体、曲轴箱重新上线 4 确认品质 第3制造科 总装1组 882474 已完成 2025/12/17 01:10:00 料 缸体 1 缸盖导管不良分解机 ES78664 OK -- -- 缸体、曲轴箱重新上线 4 确认品质 第3制造科 总装1组 882474 已完成 2025/12/17 02:25:00 料 缸体 1 缸盖导管不良分解机 ES78704 OK -- -- 缸体、曲轴箱重新上线 4 确认品质 第3制造科 总装1组 882474 已完成 2025/12/16 00:59:00 料 缸体 1 缸盖导管不良分解机 ES83573 OK -- -- 缸体、曲轴箱重新上线 4 确认品质 第3制造科 总装1组 882474 已完成 2025/12/16 14:58:00 机 2.0 HV机型加热室 13 2.0 HV机型加热室重上线使用 ET15657 OK ET15694 OK 缸盖导管不良分解机部品重上线 4 品管确认OK,部品正常流动 第3制造科 总装1组 882474 已完成 2025/12/16 16:09:00 料 摇臂 9 缸盖导管不良分解机摇臂重上线 ET15671 OK ET15700 OK 协助品管缸盖导管不良分解机部品重上线 4 记录变化点 第3制造科 总装1组 882474 已完成 2025/12/16 16:31:00 机 曲轴箱 2 缸盖导管不良分解机曲轴箱重上线5台,对应号码ES83611、ES85595、ES883580、ES83542、ES78709 --- -- -- -- 协助品管缸盖导管不良分解机部品重上线 4 记录变化点 第3制造科 总装1组 882474 已完成 2025/12/16 16:48:00 机 后飞轮螺栓分拣机 8 更换接近感应器 ET15554 OK -- -- 分度盘4#螺栓到位接近感应器损坏 4 确认效果OK 第3制造科 总装1组 882474 已完成 2025/12/16 18:50:00 料 机油滤清器 7 机油滤清器表面涂料变更初品上线使用(25WUG011) ET15864 OK -- -- 初品开始使用 4 记录变化点 第3制造科 总装1组 882474 已完成 2025/12/16 19:47:00 人 林文程 20 休假一天,黎文棋顶岗 ET15839 OK -- -- 休假 4 标准作业 第3制造科 总装1组 882474 已完成 2025/12/16 21:35:00 料 缸体 1 缸盖导管不良分解机 ES78663 OK -- -- 缸体、曲轴箱重新上线 4 确认品质 第3制造科 总装1组 882474 已完成 2025/12/16 21:45:00 料 缸体 1 缸盖导管不良分解机 ES78651 OK -- -- 缸体、曲轴箱重新上线 4 确认品质 第3制造科 总装1组 882474 已完成 2025/12/16 21:49:00 料 链条盖NO.2 18 品管全检链条盖NO.2前油封安装孔 ET15956 OK ET16061 OK 前油封安装倒角加工异常 4 品管确认OK,部品正常流动 第3制造科 总装1组 882474 跟进中 需求统计2025年每月的每周件数分类,按人、机、料、法分系列
12-18
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值