当前位置:首页>python>Pandas库——Python数据分析的瑞士军刀

Pandas库——Python数据分析的瑞士军刀

  • 2026-02-26 00:56:23
Pandas库——Python数据分析的瑞士军刀

如果说 NumPy 是科学计算的基石,那么 Pandas 就是数据分析的皇冠。它建立在 NumPy 之上,提供了高性能、易用的数据结构(Series 和 DataFrame)以及数据分析工具。无论是处理 Excel 表格、SQL 查询结果,还是清洗杂乱的日志文件,Pandas 都是数据科学家和分析师的首选工具。


一、Pandas 的核心数据结构

1.1 Series:带标签的一维数组

Series 类似于 NumPy 的一维数组,但多了**索引(Index)**功能,允许通过标签访问数据。

【代码实践】:

import pandas as pd
import numpy as np

# 1. 从列表创建
data = [10203040]
s1 = pd.Series(data)
print("默认索引:\n", s1)

# 2. 指定自定义索引
labels = ['a''b''c''d']
s2 = pd.Series(data, index=labels)
print("\n自定义索引:\n", s2)

# 3. 访问数据
print(f"通过标签访问 'b': {s2['b']}")
print(f"通过位置访问第2{s2.iloc[1]}")

# 4. 向量运算
print("\n乘以2:\n", s2 * 2)
print("\n大于25的过滤:\n", s2[s2 > 25])

1.2 DataFrame:带标签的二维表格

DataFrame 是 Pandas 最核心的对象,可以看作是由多个共享同一索引的 Series 组成的字典。

【代码实践】:

# 1. 从字典创建 (最常用)
data_dict = {
'姓名': ['张三''李四''王五''赵六'],
'年龄': [25302835],
'城市': ['北京''上海''广州''深圳'],
'薪资': [15000220001800025000]
}
df = pd.DataFrame(data_dict)
print("基础 DataFrame:\n", df)

# 2. 设置索引
df_indexed = pd.DataFrame(data_dict, index=['E001''E002''E003''E004'])
print("\n设置索引后:\n", df_indexed)

# 3.  CSV/Excel 读取 (模拟)
# df_real = pd.read_csv('data.csv') 
# df_excel = pd.read_excel('data.xlsx')

二、数据的查看与基本信息

在处理新数据时,第一步永远是“了解数据”。

【代码实践】:

使用上面的 df_indexed 进行演示

# 1. 查看前/ N 
print("3:\n", df_indexed.head(3))
print("2:\n", df_indexed.tail(2))

# 2. 查看基本信息 (类型、非空值数量)
print("\n基本信息:")
print(df_indexed.info())

# 3. 描述性统计 (仅针对数值列)
print("\n统计摘要:")
print(df_indexed.describe()) 
输出: count(计数), mean(均值), std(标准差), min, 25%, 50%, 75%, max

# 4. 查看列名和索引
print(f"列名{df_indexed.columns.tolist()}")
print(f"索引{df_indexed.index.tolist()}")

# 5. 转置 (行变列,列变行)
print("\n转置后:\n", df_indexed.T)

三、数据的选择与切片(核心难点)

Pandas 提供了多种选择数据的方式,初学者容易混淆。请记住两个核心属性:

  • .loc[]
    :基于**标签(Label)**的选择。
  • .iloc[]
    :基于**整数位置(Integer Position)**的选择。

3.1 列的选择

选择单列 (返回 Series)
ages = df_indexed['年龄']

选择多列 (返回 DataFrame)
subset = df_indexed[['姓名''薪资']]

3.2 行的选择:loc vs iloc

# --- .loc (标签索引) ---
选取索引为 'E002' 的行
row_loc = df_indexed.loc['E002']
选取索引 'E001'  'E003' 的行 (包含结束标签!)
rows_loc_range = df_indexed.loc['E001':'E003']
选取特定行和特定列
val_loc = df_indexed.loc['E002''城市'

# --- .iloc (位置索引) ---
选取第 1  (索引从0开始)
row_iloc = df_indexed.iloc[1]
选取第 0  2  (不包含结束位置,类似 Python 切片)
rows_iloc_range = df_indexed.iloc[0:2]
选取第 1 行,第 3  (城市)
val_iloc = df_indexed.iloc[12

print("Loc 选取城市:", val_loc)
print("Iloc 选取城市:", val_iloc)

3.3 布尔索引(条件筛选)

这是数据清洗中最强大的功能。

# 1. 单条件筛选:薪资大于 20000
high_salary = df_indexed[df_indexed['薪资'] > 20000]
print("高薪员工:\n", high_salary)

# 2. 多条件筛选:(薪资 > 16000)  (城市 == '北京')
注意:多条件必须用 & (), | (), ~ (),且每个条件要加括号
beijing_high = df_indexed[(df_indexed['薪资'] > 16000) & (df_indexed['城市'] == '北京')]
print("北京高薪:\n", beijing_high)

# 3. 使用 isin 筛选
cities_of_interest = ['上海''深圳']
target_cities = df_indexed[df_indexed['城市'].isin(cities_of_interest)]
print("目标城市员工:\n", target_cities)

四、数据清洗与预处理

真实世界的数据往往是“脏”的:缺失值、重复值、格式错误。

4.1 处理缺失值 (NaN)

构造含缺失值的数据
df_dirty = pd.DataFrame({
'A': [12, np.nan, 4],
'B': [5, np.nan, np.nan, 8],
'C': [10111213]
})

# 1. 检测缺失值
print("缺失值矩阵:\n", df_dirty.isnull())
print("每列缺失数量:\n", df_dirty.isnull().sum())

# 2. 删除缺失值
# dropna() 默认删除任何含有 NaN 的行
df_dropped = df_dirty.dropna() 
也可以指定阈值:至少要有2个非空值才保留
df_thresh = df_dirty.dropna(thresh=2)

# 3. 填充缺失值
用固定值填充
df_filled_const = df_dirty.fillna(0)
用均值填充 (常用于数值列)
df_filled_mean = df_dirty.fillna(df_dirty.mean())
用前一个值填充 (常用于时间序列)
df_filled_ffill = df_dirty.fillna(method='ffill')

print("\n均值填充后:\n", df_filled_mean)

4.2 处理重复值

df_dup = pd.DataFrame({
'ID': [1223],
'Value': [10202030]
})

检查重复
print("重复行标记:\n", df_dup.duplicated())

删除重复行 (保留第一次出现的)
df_unique = df_dup.drop_duplicates()
print("\n去重后:\n", df_unique)

4.3 数据类型转换与字符串操作

df_misc = pd.DataFrame({
'price_str': ['100''200''300'],
'date_str': ['2023-01-01''2023-01-02''2023-01-03'],
'name': ['  Alice ''Bob''  Charlie ']
})

# 1. 类型转换
df_misc['price_num'] = df_misc['price_str'].astype(int)
df_misc['date'] = pd.to_datetime(df_misc['date_str'])

# 2. 字符串向量化操作 (.str 访问器)
去除空格
df_misc['name_clean'] = df_misc['name'].str.strip()
转大写
df_misc['name_upper'] = df_misc['name'].str.upper()
包含判断
mask = df_misc['name'].str.contains('li'case=False不区分大小写

print("\n清洗后数据:\n", df_misc)
print(f"日期列类型{df_misc['date'].dtype}")

五、数据变换与衍生

5.1 应用函数 (apply & map)

当内置函数无法满足需求时,使用 apply 对行或列应用自定义函数。

df_trans = pd.DataFrame({
'薪资': [100001500020000],
'部门': ['技术''产品''技术']
})

# 1. map: 用于 Series,常用于替换值 (字典映射)
dept_map = {'技术''Tech''产品''Product'}
df_trans['部门_EN'] = df_trans['部门'].map(dept_map)

# 2. apply: 用于 DataFrame  Series
 '薪资列应用 lambda 函数:计算税后 (假设税率 10%)
df_trans['税后薪资'] = df_trans['薪资'].apply(lambda x: x * 0.9)

对整行应用函数:生成描述信息
defgenerate_desc(row):
returnf"{row['部门_EN']}部员工,税后收入{row['税后薪资']}"

df_trans['描述'] = df_trans.apply(generate_desc, axis=1)

print("\n变换后数据:\n", df_trans)

5.2 排序

df_sort = df_trans.sort_values(by='税后薪资', ascending=False)
print("\n按税后薪资降序:\n", df_sort)

多列排序
# df.sort_values(by=['部门', '薪资'], ascending=[True, False])

六、数据聚合与分组 (GroupBy)

Split-Apply-Combine 模式:拆分 -> 应用函数 -> 合并。这是数据分析中最核心的操作之一。

【代码实践】:

data = {
'部门': ['销售''销售''技术''技术''技术''人力'],
'员工': ['A''B''C''D''E''F'],
'薪资': [500060001200013000110007000],
'绩效': [809085958870]
}
df_group = pd.DataFrame(data)

# 1. 单列分组求均值
print("各部门平均薪资:\n", df_group.groupby('部门')['薪资'].mean())

# 2. 多列分组,多种聚合函数
 '薪资求和、均值;对 '绩效求最大值
agg_result = df_group.groupby('部门').agg({
'薪资': ['sum''mean'],
'绩效''max'
})
print("\n复杂聚合:\n", agg_result)

# 3. 重置索引 (将分组后的索引变回普通列)
clean_result = df_group.groupby('部门')['薪资'].mean().reset_index()
print("\n重置索引后:\n", clean_result)

# 4. 分组转换 (Transform):保留原行数,填入组内统计值
例如:计算每个人薪资与该部门平均薪资的差额
df_group['部门平均薪资'] = df_group.groupby('部门')['薪资'].transform('mean')
df_group['薪资差异'] = df_group['薪资'] - df_group['部门平均薪资']
print("\n添加组内统计列:\n", df_group)

七、数据合并与连接

7.1 合并 (Merge):类似 SQL Join

基于共同的列(键)进行连接。

df_left = pd.DataFrame({
'key': ['K0''K1''K2''K3'],
'A': ['A0''A1''A2''A3']
})

df_right = pd.DataFrame({
'key': ['K0''K1''K2''K4'],
'B': ['B0''B1''B2''B4']
})

# 1. 内连接 (Inner Join):只保留两边都有的 key
merge_inner = pd.merge(df_left, df_right, on='key', how='inner')
print("内连接:\n", merge_inner)

# 2. 外连接 (Outer Join):保留所有 key,缺失填 NaN
merge_outer = pd.merge(df_left, df_right, on='key', how='outer')
print("\n外连接:\n", merge_outer)

# 3. 左连接 (Left Join):以左边为主
merge_left = pd.merge(df_left, df_right, on='key', how='left')

7.2 拼接 (Concat):物理堆叠

将多个 DataFrame 上下或左右拼在一起。

df1 = pd.DataFrame({'A': ['A0''A1'], 'B': ['B0''B1']})
df2 = pd.DataFrame({'A': ['A2''A3'], 'B': ['B2''B3']})

上下拼接 (默认 axis=0)
concat_vert = pd.concat([df1, df2], ignore_index=True# ignore_index=True 重置索引
print("上下拼接:\n", concat_vert)

左右拼接 (axis=1)
concat_horiz = pd.concat([df1, df2], axis=1)

八、透视表与交叉表

快速进行多维数据分析,类似 Excel 的 Pivot Table。

df_pivot = pd.DataFrame({
'日期': ['2023-01''2023-01''2023-02''2023-02''2023-01'],
'地区': [''''''''''],
'销售额': [100200150250120],
'利润': [1020152512]
})

# 1. 透视表
行:日期,列:地区,值:销售额,聚合函数:求和
pivot_table = pd.pivot_table(
    df_pivot, 
    values='销售额'
    index='日期'
    columns='地区'
    aggfunc='sum',
    fill_value=0缺失值填0
)
print("销售透视表:\n", pivot_table)

# 2. 交叉表 (频数统计)
统计每个日期、地区的记录数
cross_tab = pd.crosstab(df_pivot['日期'], df_pivot['地区'])
print("\n频次交叉表:\n", cross_tab)

九、综合实战案例:电商销售数据分析

场景:你拿到了一份电商订单数据,需要回答以下业务问题:

  1. 哪个地区的销售额最高?
  2. 哪类商品在周末的销量最好?
  3. 计算每个用户的复购率。
import pandas as pd
import numpy as np

# 1. 构造模拟数据集
np.random.seed(42)
n_rows = 1000
data = {
'订单ID'range(1, n_rows + 1),
'用户ID': np.random.choice(['U001''U002''U003''U004''U005'], n_rows),
'日期': pd.date_range(start='2023-01-01', periods=n_rows, freq='H'), 小时级数据
'地区': np.random.choice(['华东''华北''华南''西部'], n_rows),
'商品类别': np.random.choice(['电子产品''家居''服装''食品'], n_rows),
'销售额': np.random.uniform(50500, n_rows).round(2),
'数量': np.random.randint(15, n_rows)
}
df_shop = pd.DataFrame(data)

# 2. 数据预处理
提取星期几 (0=周一, 6=周日)
df_shop['星期'] = df_shop['日期'].dt.dayofweek
df_shop['是否周末'] = df_shop['星期'].apply(lambda x: 1if x >= 5else0)

# --- 问题 1: 哪个地区的销售额最高? ---
region_sales = df_shop.groupby('地区')['销售额'].sum().sort_values(ascending=False)
print("=== 各地区总销售额 ===")
print(region_sales)

# --- 问题 2: 哪类商品在周末的销量(数量)最好? ---
先筛选周末数据
weekend_data = df_shop[df_shop['是否周末'] == 1]
再分组聚合
weekend_cat_sales = weekend_data.groupby('商品类别')['数量'].sum().sort_values(ascending=False)
print("\n=== 周末各类商品销量 ===")
print(weekend_cat_sales)

# --- 问题 3: 计算每个用户的复购率 (购买次数 > 1 的用户比例) ---
方法:统计每个用户的订单数
user_order_counts = df_shop.groupby('用户ID')['订单ID'].count()
找出订单数 > 1 的用户
repeat_users = user_order_counts[user_order_counts > 1].count()
total_users = user_order_counts.count()
repurchase_rate = repeat_users / total_users

print(f"\n=== 用户复购分析 ===")
print(f"总用户数{total_users}")
print(f"复购用户数{repeat_users}")
print(f"复购率{repurchase_rate:.2%}")

# --- 进阶:生成月度销售报表 (透视表) ---
df_shop['月份'] = df_shop['日期'].dt.to_period('M')
monthly_report = pd.pivot_table(
    df_shop,
    values='销售额',
    index='月份',
    columns='地区',
    aggfunc='sum',
    fill_value=0
)
print("\n=== 月度分地区销售报表 ===")
print(monthly_report)

核心回顾

  1. 数据结构
    Series (一维) 和 DataFrame (二维) 是核心。
  2. 索引选择
    :牢记 .loc (标签) 和 .iloc (位置) 的区别。
  3. 数据清洗
    dropnafillnadrop_duplicatesastype 是日常高频操作。
  4. 分组聚合
    groupby + agg 是解决“分类统计”问题的万能钥匙。
  5. 合并连接
    merge (SQL风格) 和 concat (堆叠风格) 用于整合多源数据。
  6. 时间序列
    :Pandas 对时间处理极其强大 (dt 访问器,resample 重采样)。

性能优化小贴士

  • 避免循环
    :尽量使用向量化操作或 groupby,不要用 for 循环遍历 DataFrame 的行。
  • 数据类型
    :加载大文件时,主动指定 dtype(如将对象类型的 ID 列设为 category),可节省大量内存。
  • 链式调用
    :Pandas 支持链式操作,但要注意 SettingWithCopyWarning 警告,尽量使用 .loc 进行赋值。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-02-28 10:52:15 HTTP/2.0 GET : https://f.mffb.com.cn/a/477098.html
  2. 运行时间 : 0.154414s [ 吞吐率:6.48req/s ] 内存消耗:4,703.68kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=00afb0a337cbb55bf8e5a60275713559
  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.000812s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000856s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000336s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000292s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000497s ]
  6. SELECT * FROM `set` [ RunTime:0.000187s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000645s ]
  8. SELECT * FROM `article` WHERE `id` = 477098 LIMIT 1 [ RunTime:0.000489s ]
  9. UPDATE `article` SET `lasttime` = 1772247135 WHERE `id` = 477098 [ RunTime:0.027911s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000235s ]
  11. SELECT * FROM `article` WHERE `id` < 477098 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000427s ]
  12. SELECT * FROM `article` WHERE `id` > 477098 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000408s ]
  13. SELECT * FROM `article` WHERE `id` < 477098 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001050s ]
  14. SELECT * FROM `article` WHERE `id` < 477098 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001188s ]
  15. SELECT * FROM `article` WHERE `id` < 477098 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.000757s ]
0.156206s