停车场的数据处理

from openpyxl import load_workbook


class stop_car:
    def __init__(self, excel_name):
        # 通过openpyxl得到excel里面的数据
        self.wb = load_workbook(excel_name)
        self.sh = self.wb.active

    # 读取excel的数据
    def do_excel(self):
        all_data = []
        for row in range(2, self.sh.max_row + 1):
            # 获取车的车牌和出入时间和停留时间
            car_date = {"car_number": self.sh.cell(row=row, column=1).value,
                        "go_time": self.sh.cell(row=row, column=3).value.strftime("%H:%M:%S"),
                        "quit_time": self.sh.cell(row=row, column=4).value.strftime("%H:%M:%S"),
                        "stop_time": self.sh.cell(row=row, column=5).value,
                        "avg_stop_time": ""}
            all_data.append(car_date)
        return all_data

    # 将excel里面的数据进行筛选,对重复的车牌进行过滤去重
    def only_car(self):
        only_car_number = []
        for i in self.do_excel():
            if i["car_number"] not in only_car_number:
                only_car_number.extend([i["car_number"]])
        return only_car_number

    # 通过遍历得到车去了几次停车场,并将停车时间相加处去停车场的次数得到平均时间
    def avg_stop_time(self):
        avg_time = []
        for i in self.only_car():
            count_time, car_frequency, avg_time_dir = 0, 0, {}
            for j in self.do_excel():
                if i == j["car_number"]:
                    car_frequency += 1
                    count_time += j["stop_time"]
                    avg_time_dir[i] = count_time / car_frequency
            for x, z in avg_time_dir.items():
                for h in self.do_excel():
                    if x == h["car_number"]:
                        h["avg_stop_time"] = z
                        avg_time.append(h)
        return avg_time

    # input 输入车牌号,将符合车牌号的数据取出来
    def search_car(self):
        c = input("input car number:")
        if str(c) in str(self.avg_stop_time()):
            for j in self.avg_stop_time():
                if str(c) in j["car_number"]:
                    print(j)
        else:
            print("查无此车")


stop_car("停车信息.xlsx").search_car()
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值