当前位置:首页>python>第14篇|Python 数据处理入门:pandas 从零开始

第14篇|Python 数据处理入门:pandas 从零开始

  • 2026-04-20 13:27:38
第14篇|Python 数据处理入门:pandas 从零开始

这篇文章用"Excel 的 Python 版"来类比 pandas,带你从零掌握 DataFrame 的读取、筛选、排序、新增列、处理空值,最后完成一个完整的数据清洗实战。不需要任何数学背景。


前言

作为前端开发者,你每天处理的数据格式是 JSON。但在数据分析领域,最常见的是 CSV(表格数据)——就像一个 Excel 表格,每行是一条记录,每列是一个字段。

pandas 是 Python 数据处理的核心库。你可以把它理解为:可编程的 Excel + 超强的 SQL 查询能力

不需要数学背景,不需要统计知识——本篇只讲前端开发者最能用上的数据处理操作:读、筛、排、改、清、存。

安装:

pip install pandas

一、DataFrame 是什么?

DataFrame 是 pandas 的核心数据结构,本质上就是一张带有行列索引的二维表格

import pandas as pd

# 从字典创建 DataFrame(类比 JS 的对象数组)
data = {
    "name":   ["Alice", "Bob", "Charlie", "Diana"],
    "age":    [28, 30, 25, 32],
    "city":   ["北京", "上海", "广州", "深圳"],
    "salary": [18000, 22000, 15000, 28000]
}
df = pd.DataFrame(data)
print(df)

输出:

      name  age city  salary
0    Alice   28   北京   18000
1      Bob   30   上海   22000
2  Charlie   25   广州   15000
3    Diana   32   深圳   28000

最左边的 0, 1, 2, 3 是行索引(index),类似数组下标。列名就是字典的键。


二、读取数据

实际工作中数据来源于文件,不是手动创建的:

import pandas as pd

# 读取 CSV 文件
df = pd.read_csv("employees.csv")

# 读取 CSV(指定编码,中文文件常用)
df = pd.read_csv("employees.csv", encoding="utf-8")

# 读取 Excel 文件(需要额外安装 openpyxl)
df = pd.read_excel("report.xlsx", sheet_name="Sheet1")

# 从 JSON 文件读取
df = pd.read_json("data.json")

# 从 Python 列表/字典创建
records = [
    {"name": "Alice", "score": 95},
    {"name": "Bob", "score": 87}
]
df = pd.DataFrame(records)

读取后先快速了解数据:

print(df.shape)       # (行数, 列数),如 (1000, 8)
print(df.dtypes)      # 每列的数据类型
print(df.head(5))     # 查看前 5 行
print(df.tail(3))     # 查看最后 3 行
print(df.info())      # 完整概览:行数、列名、类型、非空数量
print(df.describe())  # 数值列的统计摘要(均值、最大值等)

三、选取数据:列和行

3.1 选取列

# 选取单列(返回 Series,类似一维数组)
names = df["name"]
print(names)

# 选取多列(返回 DataFrame)
subset = df[["name", "salary"]]
print(subset)

类比 JS:

// JS 对象数组取某几列
const subset = employees.map(({ name, salary }) => ({ name, salary }))

3.2 选取行:loc 和 iloc

# iloc:按行号选取(integer location,类比数组下标)
print(df.iloc[0])       # 第 0 行
print(df.iloc[0:3])     # 前 3 行(切片)
print(df.iloc[-1])      # 最后一行

# loc:按行标签选取(label based)
print(df.loc[0])        # 标签为 0 的行(默认标签等于行号)

# iloc 选行和列
print(df.iloc[0, 2])            # 第 0 行第 2 列的值
print(df.iloc[:, [0, 3]])       # 所有行,第 0 和第 3 列

四、筛选数据(条件过滤)

这是 pandas 最常用的操作,类比 JS 的 .filter()

df = pd.DataFrame({
    "name":   ["Alice", "Bob", "Charlie", "Diana", "Eve"],
    "age":    [28, 30, 25, 32, 27],
    "city":   ["北京", "上海", "北京", "深圳", "上海"],
    "salary": [18000, 22000, 15000, 28000, 19000]
})

# 单条件筛选
young = df[df["age"] < 30]
print(young)
# Alice, Charlie, Eve

# 多条件筛选:& 表示 and,| 表示 or
# 注意:每个条件必须用括号括起来!
bj_young = df[(df["city"] == "北京") & (df["age"] < 30)]
print(bj_young)
# Charlie(北京且年龄<30)

high_salary_or_beijing = df[(df["salary"] > 20000) | (df["city"] == "北京")]

# isin():类比 JS 的 includes()
selected_cities = df[df["city"].isin(["北京", "上海"])]

# str.contains():模糊匹配(类比 JS 的 includes/indexOf)
# 假设有 description 列
# df[df["description"].str.contains("Python")]

对比 JS:

// JS 等价写法
const young = employees.filter(e => e.age < 30)
const bjYoung = employees.filter(e => e.city === "北京" && e.age < 30)

五、排序

# 按单列排序(升序)
df_sorted = df.sort_values("salary")

# 按单列排序(降序)
df_sorted = df.sort_values("salary", ascending=False)

# 按多列排序:先按城市升序,同城市内按薪资降序
df_sorted = df.sort_values(
    ["city", "salary"],
    ascending=[True, False]
)

print(df_sorted)

对比 JS:

employees.sort((a, b) => b.salary - a.salary)

六、新增和修改列

# 新增列(向量化运算,不需要循环!)
df["annual_salary"] = df["salary"] * 12

# 基于条件新增列(类比 JS 的 map + 三元表达式)
df["level"] = df["salary"].apply(
    lambda x: "高薪" if x >= 20000 else "普通"
)

# 用 np.where 更高效(类比三元运算符)
import numpy as np
df["is_senior"] = np.where(df["age"] >= 30, True, False)

# 修改列的值
df["city"] = df["city"].str.replace("北京", "BJ")   # 字符串替换

# 修改列名
df = df.rename(columns={"name": "员工姓名", "salary": "月薪"})

# 删除列
df = df.drop(columns=["annual_salary"])

七、数据清洗:处理空值

真实数据几乎都有缺失值,这是数据清洗的核心工作:

import pandas as pd
import numpy as np

# 创建含空值的数据
df = pd.DataFrame({
    "name":   ["Alice", "Bob", None, "Diana"],
    "age":    [28, None, 25, 32],
    "salary": [18000, 22000, None, 28000]
})

print(df)
#     name   age   salary
# 0  Alice  28.0  18000.0
# 1    Bob   NaN  22000.0
# 2   None  25.0      NaN
# 3  Diana  32.0  28000.0
# 检查空值
print(df.isnull())          # 每个格子是否为空(True/False)
print(df.isnull().sum())    # 每列的空值数量
print(df.isnull().any())    # 每列是否有空值

# 删除含空值的行(默认任意列有空就删)
df_clean = df.dropna()

# 只删除所有列都是空的行
df_clean = df.dropna(how="all")

# 只在特定列有空时才删除
df_clean = df.dropna(subset=["name"])

# 填充空值
df["age"] = df["age"].fillna(df["age"].mean())          # 用平均值填充
df["salary"] = df["salary"].fillna(0)                   # 用 0 填充
df["name"] = df["name"].fillna("未知")                  # 用字符串填充
df["salary"] = df["salary"].fillna(method="ffill")      # 用前一个值填充

八、分组统计(groupby)

groupby 是 pandas 最强大的功能之一,类比 SQL 的 GROUP BY,或 JS 里用 reduce 做分组统计:

df = pd.DataFrame({
    "name":       ["Alice", "Bob", "Charlie", "Diana", "Eve"],
    "department": ["技术", "产品", "技术", "设计", "产品"],
    "salary":     [18000, 22000, 25000, 16000, 20000],
    "performance":["A", "B", "A", "C", "B"]
})

# 按部门分组,计算平均薪资
dept_avg = df.groupby("department")["salary"].mean()
print(dept_avg)
# department
# 产品    21000.0
# 技术    21500.0
# 设计    16000.0

# 按部门分组,同时计算多个统计量
dept_stats = df.groupby("department")["salary"].agg(["mean", "max", "min", "count"])
print(dept_stats)

# 多列分组
perf_dept = df.groupby(["department", "performance"])["salary"].mean()

对比 JS(实现同样效果需要更多代码):

// JS 分组统计
const grouped = employees.reduce((acc, e) => {
  if (!acc[e.department]) acc[e.department] = []
  acc[e.department].push(e.salary)
  return acc
}, {})
const avgByDept = Object.fromEntries(
  Object.entries(grouped).map(([dept, salaries]) => [
    dept,
    salaries.reduce((a, b) => a + b, 0) / salaries.length
  ])
)

pandas 的 groupby 一行搞定,JS 需要写一大段。


九、导出数据

# 导出为 CSV
df.to_csv("output.csv", index=False, encoding="utf-8-sig")
# index=False:不把行索引写入文件
# encoding="utf-8-sig":Excel 打开 CSV 不乱码

# 导出为 Excel
df.to_excel("output.xlsx", index=False, sheet_name="数据")

# 导出为 JSON
df.to_json("output.json", orient="records", force_ascii=False)
# orient="records":每行是一个 JSON 对象,[{...}, {...}]

十、综合实战:员工数据清洗报告

import pandas as pd
import numpy as np


def analyze_employees(filepath: str) -> pd.DataFrame:
    """读取员工数据,清洗并生成分析报告"""

    # 1. 读取数据
    df = pd.read_csv(filepath, encoding="utf-8")
    print(f"✅ 读取完成:{df.shape[0]} 条记录,{df.shape[1]} 个字段")

    # 2. 查看数据质量
    null_counts = df.isnull().sum()
    print(f"\n空值统计:\n{null_counts[null_counts > 0]}")

    # 3. 数据清洗
    df["salary"] = df["salary"].fillna(df["salary"].median())  # 用中位数填充薪资
    df["department"] = df["department"].fillna("未分配")        # 填充部门
    df = df.dropna(subset=["name", "age"])                     # 删除姓名/年龄为空的行

    # 4. 数据加工
    df["age"] = df["age"].astype(int)
    df["annual_salary"] = df["salary"] * 12
    df["age_group"] = pd.cut(
        df["age"],
        bins=[0, 25, 30, 35, 100],
        labels=["≤25岁", "26-30岁", "31-35岁", "35岁以上"]
    )

    # 5. 生成统计报告
    print("\n=== 部门薪资分析 ===")
    dept_analysis = df.groupby("department").agg(
        人数=("name", "count"),
        平均月薪=("salary", "mean"),
        最高月薪=("salary", "max"),
        最低月薪=("salary", "min")
    ).round(0).sort_values("平均月薪", ascending=False)
    print(dept_analysis)

    print("\n=== 年龄分布 ===")
    print(df["age_group"].value_counts().sort_index())

    # 6. 导出结果
    df.to_csv("employees_cleaned.csv", index=False, encoding="utf-8-sig")
    print("\n✅ 清洗后数据已保存到 employees_cleaned.csv")

    return df


if __name__ == "__main__":
    result = analyze_employees("employees.csv")

小结

操作
pandas 方法
JS 类比
读取 CSV
pd.read_csv()Papa.parse()
筛选行
df[df["col"] > x]arr.filter()
选取列
df[["col1", "col2"]]arr.map(({c1,c2}) => ({c1,c2}))
新增列
df["new"] = df["col"] * 2arr.map(x => ({...x, new: x.col * 2}))
排序
df.sort_values("col")arr.sort()
分组统计
df.groupby("col").mean()arr.reduce(...)
处理空值
df.fillna()
 / df.dropna()
手动 filter + map
导出 CSV
df.to_csv()Papa.unparse()

3 个新手必踩的坑:

  1. 多条件筛选时每个条件必须用括号括起来:df[(cond1) & (cond2)],不能用 and
  2. df["col"] = value 是修改/新增列,df[df["col"] > x] 是筛选行,看清楚
  3. to_csv 中文文件用 encoding="utf-8-sig" 而不是 utf-8,否则 Excel 打开乱码

下篇预告

第 15 篇:Python 爬虫入门:用 requests + BeautifulSoup 抓取网页数据

数据从哪来?很多时候要自己抓。下一篇用前端最熟悉的 DOM 操作来类比 BeautifulSoup 的 HTML 解析——querySelector 的 Python 版本,用起来超顺手。


最新文章

随机文章

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