当前位置:首页>Excel>Python 玩转 Excel 案例【第 16 期】

Python 玩转 Excel 案例【第 16 期】

  • 2026-04-03 21:17:35
Python 玩转 Excel 案例【第 16 期】

Python 玩转 Excel 案例【第 16 期】

📌 案例说明

原始数据表:

员工信息表:

工号
姓名
部门
10001
张三
销售部
10002
李四
技术部
10003
王五
技术部
10004
赵六
市场部
10005
周七
人事部

工资表(匹配前):

工号
姓名
基本工资
10001
8000
10002
12000
10003
11000
10004
8500
99999
5000

这是日常数据处理中非常常见的场景:两张表需要根据共同字段(工号)进行信息匹配。工资表的姓名列为空,需要从员工信息表中把对应的姓名填充过来。

目标任务:

在 Excel 中,这类需求通常使用 VLOOKUP 函数解决。

本期案例将跟大家一起学习如何用 Python 实现类似 VLOOKUP 的功能。

核心操作:数据映射 + 数据质量核查

  • • 关键函数map()isin()tolist()
  • • 核心逻辑:用工号作为桥梁,从信息表匹配姓名,同时检查哪些工号匹配失败

📜 完整代码

"""
VLOOKUP匹配填充 - 根据工号从信息表匹配姓名
数据质量核查,输出未匹配到的工号列表
"""

import
 pandas as pd

# 读取两张表

df_info = pd.read_excel("员工信息表.xlsx")   # 工号、姓名、部门
df_salary = pd.read_excel("工资表.xlsx")     # 工号、姓名(空)、基本工资

# 根据工号匹配姓名(类似VLOOKUP)

df_salary["姓名"] = df_salary["工号"].map(df_info.set_index("工号")["姓名"])

# 数据质量核查:检查哪些工号没匹配上

unmatched = df_salary[~df_salary["工号"].isin(df_info["工号"])]["工号"].tolist()
print
(f"⚠️ 未匹配到的工号:{unmatched}" if unmatched else "✅ 全部匹配成功")

# 保存结果

df_salary.to_excel("工资表_填充后.xlsx", index=False)

运行结果:

⚠️ 未匹配到的工号:[99999]

匹配后的工资表:

工号
姓名
基本工资
10001
张三
8000
10002
李四
12000
10003
王五
11000
10004
赵六
8500
99999
NaN
5000

⚠️ 注意:工号 99999 在员工信息表中不存在,所以姓名填充为 NaN(空值),并被程序检测出来。


第一步:导入所需库

import pandas as pd

代码解释:

  • • import pandas as pd
    导入 pandas 库,这是 Python 数据处理的核心武器。它提供了 read_excel() 读取 Excel、DataFrame 数据结构、map() 数据映射、isin() 条件筛选等强大功能。

第二步:读取数据

df_info = pd.read_excel("员工信息表.xlsx")   # 工号、姓名、部门
df_salary = pd.read_excel("工资表.xlsx")     # 工号、姓名(空)、基本工资

代码解释:

  • • pd.read_excel()
    读取 Excel 文件,返回 DataFrame(数据表格)对象。
  • • df_info
    存储员工信息表,包含工号、姓名、部门三列。
  • • df_salary
    存储工资表,包含工号、姓名(空)、基本工资三列。

💡 小贴士read_excel() 默认读取第一个工作表,如果文件有多个 Sheet,可以用 sheet_name 参数指定,如

 pd.read_excel("文件.xlsx", sheet_name="Sheet2")

第三步:核心匹配(VLOOKUP)

df_salary["姓名"] = df_salary["工号"].map(df_info.set_index("工号")["姓名"])

这行代码是整期案例的灵魂,实现了类似 Excel VLOOKUP 的功能。我们来一步步拆解:

3.1 df_info.set_index("工号")

将信息表的"工号"列设为行索引。

执行前:

工号
姓名
部门
10001
张三
销售部
10002
李四
技术部
10003
王五
技术部

执行后:

工号(索引)
姓名
部门
10001
张三
销售部
10002
李四
技术部
10003
王五
技术部

3.2 df_info.set_index("工号")["姓名"] - 构建查找表

只取出"姓名"这一列,得到一个 Series(带标签的一维数组),本质上就是一个键值对映射

键(Key)- 工号
值(Value)- 姓名
10001
张三
10002
李四
10003
王五
10004
赵六
10005
周七

为什么不能直接写 df_info["姓名"]

写法
结果
问题
df_info["姓名"]
一个姓名列表:['张三','李四','王五'...]
只有姓名,没有工号作为查找依据,无法匹配
df_info.set_index("工号")["姓名"]
工号→姓名的映射表
可以直接用工号找到对应的姓名

3.3 .map() 执行匹配

map() 是 pandas 中用于数据映射的方法,将一个 Series 中的每个值按照规则转换成另一个值。

df_salary["工号"].map(查找表)

执行过程:

工资表工号
查找表中是否存在
返回结果
10001
✅ 存在
张三
10002
✅ 存在
李四
10003
✅ 存在
王五
10004
✅ 存在
赵六
99999
❌ 不存在
NaN(空值)

3.4 赋值给姓名列

将匹配结果赋给 df_salary["姓名"],完成姓名填充。


完整流程示意图

原始 df_info:
┌─────────┬────────┬────────┬────────┐
│ 数字索引 │  工号  │  姓名  │  部门  │
├─────────┼────────┼────────┼────────┤
│    0    │ 10001  │  张三  │ 销售部 │
│    1    │ 10002  │  李四  │ 技术部 │
│    2    │ 10003  │  王五  │ 技术部 │
│    3    │ 10004  │  赵六  │ 市场部 │
│    4    │ 10005  │  周七  │ 人事部 │
└─────────┴────────┴────────┴────────┘
                    ↓
           .set_index("工号")
                    ↓
┌────────┬────────┬────────┐
│  工号  │  姓名  │  部门  │  ← 工号变成了行索引
├────────┼────────┼────────┤
│ 10001  │  张三  │ 销售部 │
│ 10002  │  李四  │ 技术部 │
│ 10003  │  王五  │ 技术部 │
│ 10004  │  赵六  │ 市场部 │
│ 10005  │  周七  │ 人事部 │
└────────┴────────┴────────┘
                    ↓
              ["姓名"]
                    ↓
┌────────┬────────┐
│  工号  │  姓名  │  ← 只保留姓名列(查找表)
├────────┼────────┤
│ 10001  │  张三  │
│ 10002  │  李四  │
│ 10003  │  王五  │
│ 10004  │  赵六  │
│ 10005  │  周七  │
└────────┴────────┘
        ↓
    map() 匹配
        ↓
工资表工号 10003 → 查找表[10003] → "王五"

对比:有查找表 vs 无查找表

# 有查找表(简洁高效)
姓名 = 查找表[10003]  # 返回 "王五"

# 无查找表(又长又慢)

姓名 = df_info[df_info["工号"] == 10003]["姓名"].values[0]  # 返回 "王五"

第四步:数据质量核查

unmatched = df_salary[~df_salary["工号"].isin(df_info["工号"])]["工号"].tolist()
print
(f"⚠️ 未匹配到的工号:{unmatched}" if unmatched else "✅ 全部匹配成功")

这行代码是数据质量核查的关键,能够自动找出哪些工号匹配失败。

逐步拆解

4.1 df_salary["工号"].isin(df_info["工号"])

判断工资表的每个工号是否在信息表的工号列表中。

工资表工号
是否存在于信息表
10001
True
10002
True
10003
True
10004
True
99999
False

4.2 ~ 取反

波浪线 ~ 是取反运算符,True 变 False,False 变 True。

原结果
取反后
True
False
True
False
True
False
True
False
False
True

4.3 df_salary[~df_salary["工号"].isin(df_info["工号"])]

用布尔值筛选行,只保留为 True 的行(即匹配失败的行)。

结果:

工号
姓名
基本工资
99999
NaN
5000

4.4 ["工号"] 和 .tolist()

取出工号列,并转换为 Python 列表。

最终结果:unmatched = [99999]

输出效果

  • • 有未匹配的工号⚠️ 未匹配到的工号:[99999]
  • • 全部匹配成功✅ 全部匹配成功

💡 小贴士:这个数据质量检查环节非常重要!在实际工作中,匹配失败通常意味着:信息表漏了某位员工、工资表工号录入错误、或者工号格式不一致(如文本型数字 vs 数值型数字)。及早发现这些问题,可以避免后续数据错误。


第五步:保存结果

df_salary.to_excel("工资表_填充后.xlsx", index=False)

print
("✅ VLOOKUP匹配完成")

代码解释:

  • • to_excel()
    将 DataFrame 保存为 Excel 文件。
  • • "工资表_填充后.xlsx"
    输出文件名。使用新文件名可以保留原始数据,方便对比验证。
  • • index=False
    不保存行索引。pandas 默认会给每行加一个数字索引(0,1,2...),通常我们不需要它出现在 Excel 中。

⚠️ 注意:这里保存为新文件,原始 工资表.xlsx 不会被修改。如果需要覆盖原文件,可以改成 df_salary.to_excel("工资表.xlsx", index=False),但建议保留原始数据。


📚 本期核心知识点

📍 知识点 1:map() 数据映射

df_salary["姓名"] = df_salary["工号"].map(查找表)
  • • 作用:将一个 Series 中的每个值,按照规则转换成另一个值
  • • 支持:字典映射、Series 映射、函数映射
  • • 特点:匹配失败返回 NaN

其他用法示例:

# 字典映射
df["性别代码"] = df["性别"].map({"男": 1, "女": 0})

# 函数映射

df["工号前缀"] = df["工号"].map(lambda x: f"EMP-{x}")

📍 知识点 2:isin() + ~ 查找不存在的值

unmatched = df_salary[~df_salary["工号"].isin(df_info["工号"])]["工号"].tolist()

记忆口诀:取反筛选不存在,取出列值转列表

符号
含义
作用
.isin()
判断是否在集合中
返回布尔值
~
取反运算符
True↔False 互换
df[布尔值]
布尔索引
筛选行
.tolist()
转列表
Series → list

📍 知识点 3:set_index() 设置行索引

df_info.set_index("工号")["姓名"]
  • • 作用:将指定列设置为行索引,方便快速查找
  • • 链式操作:设置索引后可以立即用 [列名] 取出需要的列

📍 知识点 4:to_excel() 保存文件

df.to_excel("输出文件.xlsx", index=False)
参数
含义
常用值
index
是否保存行索引
True
(默认)/ False
sheet_name
工作表名称
默认为 "Sheet1"
columns
指定输出哪些列
默认为全部列

🔄 本案例核心流程

① 读取两张表 → ② 构建查找表 → ③ map 匹配姓名 → ④ 数据质量核查 → ⑤ 保存结果

读取员工信息表 (df_info)              读取工资表 (df_salary)
        ↓                                      ↓
set_index("工号")["姓名"]                    工号列
        ↓                                      ↓
    查找表 ←─────────────────────────────────┘
        ↓
    map() 匹配
        ↓
df_salary["姓名"] = 匹配结果
        ↓
    数据质量核查(isin + ~ + tolist)
        ↓
   保存到新Excel (to_excel)

📦 资源获取提示

关注「码农自习室」,后台回复关键词 PythonExcel案例,即可获取本文完整代码及配套练习数据集,一起动手掌握高效数据操作的核心技巧!


❤️ 支持我们

如果本文对你有帮助,欢迎点赞 + 关注 + 点亮小红心,你的支持就是我们持续创作的最大动力~

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-04-05 00:42:30 HTTP/2.0 GET : https://h.sjds.net/a/495336.html
  2. 运行时间 : 0.127032s [ 吞吐率:7.87req/s ] 内存消耗:4,449.46kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=754e98959d36648c1efa97d1a7433ef6
  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.000846s ] mysql:host=127.0.0.1;port=3306;dbname=h_sjds;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001723s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000738s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000787s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001252s ]
  6. SELECT * FROM `set` [ RunTime:0.000624s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001500s ]
  8. SELECT * FROM `article` WHERE `id` = 495336 LIMIT 1 [ RunTime:0.001440s ]
  9. UPDATE `article` SET `lasttime` = 1775320950 WHERE `id` = 495336 [ RunTime:0.002189s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 65 LIMIT 1 [ RunTime:0.000651s ]
  11. SELECT * FROM `article` WHERE `id` < 495336 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001001s ]
  12. SELECT * FROM `article` WHERE `id` > 495336 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001064s ]
  13. SELECT * FROM `article` WHERE `id` < 495336 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001774s ]
  14. SELECT * FROM `article` WHERE `id` < 495336 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.002654s ]
  15. SELECT * FROM `article` WHERE `id` < 495336 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001863s ]
0.130706s