当前位置:首页>Excel>数据分析还用Excel?该用Python卷同事了

数据分析还用Excel?该用Python卷同事了

  • 2026-06-30 10:47:41
数据分析还用Excel?该用Python卷同事了

数据分析还用Excel?该用Python卷同事了

 作者:职场小袁同学 | 发布时间:2026年06月11日 08:14 

一、技术简介

1.1 背景与痛点

 在日常工作中,数据分析无处不在:销售报表、用户行为分析、财务对账、市场调研……过去,Excel是绝大多数人的首选工具。它确实强大——公式、透视表、图表、宏,能应付大部分场景。但随着数据量的增长和业务复杂度的提升,Excel的短板逐渐暴露:

  • 数据量瓶颈
    :Excel单表最多1048576行,实际超过10万行就开始卡顿,超过50万行基本崩溃。
  • 重复操作
    :每天导出一份报表,筛选、排序、做图、导出,操作步骤完全一致,但Excel无法自动执行。
  • 版本混乱
    :通过邮件、微信传来传去的Excel文件,你永远不知道哪个是最新版。
  • 缺乏可复现性
    :同事问你“这个数字怎么来的”,你只能回忆操作步骤,无法精确复现。
  • 协作困难
    :多人同时编辑一个Excel文件,冲突、覆盖、数据损坏频繁发生。

1.2 Python数据分析的优势

 Python作为一种通用编程语言,在数据分析领域具备无可比拟的优势:

  • 处理海量数据
    :借助pandas库,可以轻松处理百万行、千万行级别的数据,内存管理高效。
  • 自动化与可重复
    :写一次脚本,每天自动运行,结果一致,无需手动操作。
  • 强大的生态
    :pandas、numpy、matplotlib、seaborn、scikit-learn等库覆盖数据读取、清洗、分析、可视化、建模全流程。
  • 版本控制
    :代码可以用Git管理,谁改了哪里一目了然,数据源和代码分离,清晰可控。
  • 跨平台与可移植
    :一份Python脚本可以在Windows、Mac、Linux上运行,不受Excel版本限制。
  • 扩展性强
    :从简单的统计到机器学习模型,Python都能无缝衔接。

1.3 适用场景

  • 数据量超过10万行的报表处理
  • 需要每天/每周定期生成的分析报告
  • 跨多个数据源(数据库、API、CSV、Excel)的整合分析
  • 需要高级统计或机器学习建模的分析任务
  • 团队需要标准化、可复用的分析流程

二、安装配置

2.1 Python环境安装

 推荐使用Anaconda发行版,它预装了数据分析常用库,省去逐个安装的麻烦。 

Windows/macOS/Linux通用步骤:

 1. 访问 https://www.anaconda.com/download 下载对应系统版本(建议选择Python 3.9+版本) 

2. 双击安装包,按提示完成安装(Windows用户注意勾选“Add Anaconda to my PATH environment variable”) 

3. 验证安装:打开终端(Windows用cmd或PowerShell,macOS/Linux用Terminal),输入: 

BASHIT职场小袁同学 · PYTHON.md

1python --version2# 应输出类似:Python 3.9.1334conda --version5# 应输出类似:conda 4.14.0

2.2 数据分析核心库安装

 如果选择Miniconda或纯Python,手动安装以下库: 

BASHIT职场小袁同学 · PYTHON.md

1pip install pandas numpy matplotlib seaborn openpyxl xlrd
  • pandas
    :数据处理核心库
  • numpy
    :数值计算基础库
  • matplotlib
    :基础绘图库
  • seaborn
    :高级统计绘图库(基于matplotlib)
  • openpyxl
    :读写Excel .xlsx文件
  • xlrd
    :读取旧版.xls文件

2.3 验证安装

 创建一个Python脚本或直接在终端交互式环境测试: 

PYTHONIT职场小袁同学 · PYTHON.md

1import pandas as pd2import numpy as np3import matplotlib.pyplot as plt4import seaborn as sns56print("pandas version:", pd.__version__)7print("numpy version:", np.__version__)8print("All libraries imported successfully!")

 预期输出: 

CODEIT职场小袁同学

1pandas version: 2.1.42numpy version: 1.25.23All libraries imported successfully!

常见异常及解决:

  • ModuleNotFoundError: No module named 'pandas'
    :说明未安装,执行 pip install pandas 即可。
  • ImportError: DLL load failed
    (Windows特有):通常是Visual C++ Redistributable缺失,去微软官网下载安装最新版。

三、基础示例

3.1 场景描述

 假设你是某电商公司的运营人员,每天需要处理一份包含订单数据的Excel文件(orders.xlsx),需要完成以下任务: 

1. 读取Excel文件 

2. 查看数据基本信息 

3. 计算每个商品类别的总销售额 

4. 将结果保存为新的Excel文件 

3.2 完整代码

PYTHONIT职场小袁同学 · PYTHON.md

1# -*- coding: utf-8 -*-2"""3电商订单数据分析基础示例4功能:读取Excel,计算各品类销售额,输出结果5"""67import pandas as pd89def analyze_orders(input_file, output_file):10    """11    分析订单数据,计算各品类销售额1213    Args:14        input_file: 输入Excel文件路径15        output_file: 输出Excel文件路径16    """17    try:18        # 1. 读取Excel文件19        print(f"正在读取文件: {input_file}")20        df = pd.read_excel(input_file, sheet_name='订单明细')2122        # 2. 查看数据基本信息23        print("\n=== 数据基本信息 ===")24        print(f"数据行数: {len(df)}")25        print(f"数据列数: {len(df.columns)}")26        print(f"列名: {list(df.columns)}")27        print(f"\n前5行数据预览:")28        print(df.head())29        print(f"\n数据类型:")30        print(df.dtypes)3132        # 3. 数据清洗:确保金额列为数值类型33        df['金额'] = pd.to_numeric(df['金额'], errors='coerce')34        # 删除金额为空的行35        df = df.dropna(subset=['金额'])3637        # 4. 按商品类别分组计算总销售额38        category_sales = df.groupby('商品类别')['金额'].agg(['sum', 'count', 'mean'])39        category_sales.columns = ['总销售额', '订单数', '平均单价']40        category_sales = category_sales.sort_values('总销售额', ascending=False)4142        print("\n=== 各品类销售额统计 ===")43        print(category_sales)4445        # 5. 保存结果46        category_sales.to_excel(output_file, sheet_name='品类分析')47        print(f"\n结果已保存至: {output_file}")4849        return category_sales5051    except FileNotFoundError:52        print(f"错误:找不到文件 {input_file}")53        print("请检查文件路径是否正确")54        return None55    except Exception as e:56        print(f"未知错误:{e}")57        return None5859# 执行分析60if __name__ == "__main__":61    input_path = "orders.xlsx"62    output_path = "category_analysis.xlsx"63    result = analyze_orders(input_path, output_path)

3.3 预期输出

 假设 orders.xlsx 内容如下: 

订单ID
商品类别
金额
下单日期
1001
电子产品
2999
2024-01-01
1002
服装
199
2024-01-01
1003
电子产品
4599
2024-01-02
1004
食品
59
2024-01-02
1005
服装
399
2024-01-03

 运行后控制台输出: 

CODEIT职场小袁同学

1正在读取文件: orders.xlsx23=== 数据基本信息 ===4数据行数: 55数据列数: 46列名: ['订单ID', '商品类别', '金额', '下单日期']78前5行数据预览:9   订单ID 商品类别    金额        下单日期100  1001  电子产品  2999  2024-01-01111  1002    服装   199  2024-01-01122  1003  电子产品  4599  2024-01-02133  1004    食品    59  2024-01-02144  1005    服装   399  2024-01-031516数据类型:17订单ID        int6418商品类别      object19金额         int6420下单日期      object21dtype: object2223=== 各品类销售额统计 ===24           总销售额  订单数         平均单价25商品类别                                  26电子产品    7598     2  3799.00000027服装       598      2   299.00000028食品        59      1    59.0000002930结果已保存至: category_analysis.xlsx

3.4 常见异常及处理

异常1:ValueError: Sheet name '订单明细' not found

  • 原因
    :Excel文件中没有名为“订单明细”的sheet
  • 解决
    :先查看所有sheet名称:xls = pd.ExcelFile(input_file); print(xls.sheet_names)
  • 修复
    :修改sheet_name参数为正确的名称,或使用 sheet_name=0 读取第一个sheet

异常2:KeyError: '金额'

  • 原因
    :Excel中没有名为“金额”的列,可能是列名不同(如“销售额”“总价”)
  • 解决
    :先打印所有列名,找到正确的名称
  • 修复
    :修改代码中的列名,或使用列索引

异常3:MemoryError

  • 原因
    :Excel文件过大,一次性读取占用过多内存
  • 解决
    :分块读取或使用 dtype 参数指定列类型减少内存
  • 修复
    df = pd.read_excel(input_file, dtype={'金额': 'float32'})

四、进阶实战

4.1 场景描述

 你是一家连锁零售公司的数据分析师,需要处理以下任务: 

 1. 数据源:3个Excel文件(销售明细、门店信息、商品目录)和1个CSV文件(每日库存) 2. 任务

  • 合并所有销售数据(可能有重复和缺失)
  • 关联门店和商品信息
  • 计算每个门店、每个商品类别的日销售额、毛利率
  • 找出销售额下降超过20%的门店
  • 输出一份汇总Excel(包含多个sheet)和一张可视化图表

 3. 数据规模:每个销售文件约50万行,总计150万行 

4.2 完整代码

PYTHONIT职场小袁同学 · PYTHON.md

1# -*- coding: utf-8 -*-2"""3零售数据分析进阶实战4功能:多源数据整合、清洗、分析、可视化5"""67import pandas as pd8import numpy as np9import matplotlib.pyplot as plt10import seaborn as sns11from datetime import datetime12import warnings13warnings.filterwarnings('ignore')  # 忽略烦人的警告1415# 设置中文字体,避免图表乱码16plt.rcParams['font.sans-serif'] = ['SimHei', 'DejaVu Sans']17plt.rcParams['axes.unicode_minus'] = False1819class RetailAnalyzer:20    """零售数据分析器"""2122    def __init__(self, data_dir="./data/"):23        self.data_dir = data_dir24        self.sales = pd.DataFrame()25        self.stores = pd.DataFrame()26        self.products = pd.DataFrame()27        self.inventory = pd.DataFrame()2829    def load_data(self):30        """加载所有数据源"""31        print("=" * 50)32        print("开始加载数据...")33        print("=" * 50)3435        # 1. 加载3个销售文件,合并为一个36        sales_files = ['sales_part1.xlsx', 'sales_part2.xlsx', 'sales_part3.xlsx']37        sales_list = []3839        for file in sales_files:40            try:41                df = pd.read_excel(self.data_dir + file)42                sales_list.append(df)43                print(f"✓ 已加载: {file} ({len(df)}行)")44            except FileNotFoundError:45                print(f"✗ 文件不存在: {file}")4647        if sales_list:48            self.sales = pd.concat(sales_list, ignore_index=True)49            print(f"✓ 合并后总行数: {len(self.sales)}")50        else:51            raise FileNotFoundError("没有找到任何销售文件!")5253        # 2. 加载门店信息54        self.stores = pd.read_excel(self.data_dir + 'stores.xlsx')55        print(f"✓ 门店信息: {len(self.stores)}家门店")5657        # 3. 加载商品目录58        self.products = pd.read_excel(self.data_dir + 'products.xlsx')59        print(f"✓ 商品目录: {len(self.products)}个商品")6061        # 4. 加载库存CSV62        self.inventory = pd.read_csv(self.data_dir + 'inventory.csv', encoding='utf-8')63        print(f"✓ 库存数据: {len(self.inventory)}条记录")6465        return self6667    def clean_data(self):68        """数据清洗"""69        print("\n" + "=" * 50)70        print("开始数据清洗...")71        print("=" * 50)7273        # 1. 去除重复行74        before_dedup = len(self.sales)75        self.sales = self.sales.drop_duplicates()76        dup_count = before_dedup - len(self.sales)77        if dup_count > 0:78            print(f"✓ 去除重复行: {dup_count}行")7980        # 2. 处理缺失值81        print(f"清洗前缺失值统计:")82        print(self.sales.isnull().sum())8384        # 销售日期缺失的行删除(关键字段)85        self.sales = self.sales.dropna(subset=['销售日期'])8687        # 金额缺失的用同类商品均价填充88        if '金额' in self.sales.columns:89            avg_amount = self.sales.groupby('商品ID')['金额'].transform('mean')90            self.sales['金额'] = self.sales['金额'].fillna(avg_amount)9192        # 3. 数据类型转换93        self.sales['销售日期'] = pd.to_datetime(self.sales['销售日期'])94        self.sales['金额'] = pd.to_numeric(self.sales['金额'], errors='coerce')95        self.sales['成本'] = pd.to_numeric(self.sales['成本'], errors='coerce')9697        # 4. 添加计算字段:毛利率98        self.sales['毛利率'] = (self.sales['金额'] - self.sales['成本']) / self.sales['金额']99        self.sales['毛利率'] = self.sales['毛利率'].clip(0, 1)  # 限制在0-1之间100101        print(f"✓ 清洗后数据: {len(self.sales)}行")102        return self103104    def merge_data(self):105        """关联数据"""106        print("\n" + "=" * 50)107        print("开始关联数据...")108        print("=" * 50)109110        # 1. 关联商品信息(获取商品类别)111        self.sales = self.sales.merge(112            self.products[['商品ID', '商品类别', '品牌']],113            on='商品ID',114            how='left'115        )116        print(f"✓ 关联商品信息完成")117118        # 2. 关联门店信息(获取门店区域)119        self.sales = self.sales.merge(120            self.stores[['门店ID', '门店名称', '区域']],121            on='门店ID',122            how='left'123        )124        print(f"✓ 关联门店信息完成")125126        # 3. 检查关联失败的数据127        no_category = self.sales['商品类别'].isnull().sum()128        no_store = self.sales['门店名称'].isnull().sum()129        if no_category > 0:130            print(f"⚠ 警告: {no_category}行数据未匹配到商品类别")131        if no_store > 0:132            print(f"⚠ 警告: {no_store}行数据未匹配到门店信息")133134        return self135136    def analyze_sales(self):137        """分析销售数据"""138        print("\n" + "=" * 50)139        print("开始销售分析...")140        print("=" * 50)141142        # 1. 各门店每日销售额143        daily_store_sales = self.sales.groupby(144            ['门店名称', self.sales['销售日期'].dt.date]145        )['金额'].sum().reset_index()146        daily_store_sales.columns = ['门店名称', '日期', '日销售额']147148        # 2. 各商品类别销售额占比149        category_sales = self.sales.groupby('商品类别')['金额'].sum()150        category_pct = category_sales / category_sales.sum() * 100151152        print(f"\n=== 各品类销售额占比 ===")153        for cat, pct in category_pct.items():154            print(f"{cat:10s}: {pct:.1f}%")155156        # 3. 计算各门店最近两天的销售额变化157        latest_date = daily_store_sales['日期'].max()158        prev_date = latest_date - pd.Timedelta(days=1)159160        today_sales = daily_store_sales[daily_store_sales['日期'] == latest_date]161        yesterday_sales = daily_store_sales[daily_store_sales['日期'] == prev_date]162163        sales_change = today_sales.merge(164            yesterday_sales[['门店名称', '日销售额']],165            on='门店名称',166            how='left',167            suffixes=('_今日', '_昨日')168        )169        sales_change['变化率'] = (170            (sales_change['日销售额_今日'] - sales_change['日销售额_昨日'])171            / sales_change['日销售额_昨日'] * 100172        )173174        # 4. 找出销售额下降超过20%的门店175        declining_stores = sales_change[sales_change['变化率'] < -20]176177        print(f"\n=== 销售额下降超过20%的门店 ({len(declining_stores)}家) ===")178        for _, row in declining_stores.iterrows():179            print(f"{row['门店名称']:15s}: 今日{row['日销售额_今日']:.0f}元, "180                  f"昨日{row['日销售额_昨日']:.0f}

声明:本文内容由AI小袁智能工作流自动生成,仅供参考学习。文中观点不代表本平台立场,如有侵权请联系删除。 

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-06-30 21:26:19 HTTP/2.0 GET : https://h.sjds.net/a/530828.html
  2. 运行时间 : 0.116927s [ 吞吐率:8.55req/s ] 内存消耗:4,485.70kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=6183864c1f5d21d5f32a12feb5e324f5
  1. /yingpanguazai/ssd/ssd1/www/h.sjds.net/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/h.sjds.net/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/h.sjds.net/runtime/temp/ad153693ed39fba6d1bda2fe72512cde.php ( 12.06 KB )
  140. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000646s ] mysql:host=127.0.0.1;port=3306;dbname=h_sjds;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000899s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000402s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000254s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000465s ]
  6. SELECT * FROM `set` [ RunTime:0.000210s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000500s ]
  8. SELECT * FROM `article` WHERE `id` = 530828 LIMIT 1 [ RunTime:0.003552s ]
  9. UPDATE `article` SET `lasttime` = 1782825979 WHERE `id` = 530828 [ RunTime:0.008705s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 65 LIMIT 1 [ RunTime:0.000338s ]
  11. SELECT * FROM `article` WHERE `id` < 530828 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000538s ]
  12. SELECT * FROM `article` WHERE `id` > 530828 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000490s ]
  13. SELECT * FROM `article` WHERE `id` < 530828 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000823s ]
  14. SELECT * FROM `article` WHERE `id` < 530828 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.016968s ]
  15. SELECT * FROM `article` WHERE `id` < 530828 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.015133s ]
0.118467s