概述
分析日志相关的脚本用的比较多。写一篇文章,收集python常用的一些方法。
环境搭建
python
Python 3.9.0
实际需要掌握的技巧
正则表达式
1 | # [18:57:52] [INF] GiftItemLog buy rid: 15909, ID: 601, Type: 6, Rmb: 30 |
按照utf-8来读写文件,按照行读取文件
1 | c_fd = codecs.open('./insert_create.sql', 'w', encoding='utf-8') |
写入excel中
日志如何编写
1 | import logging |
支持循环日志
RotatingFileHandler
1 | import logging |
int转换str填充0
1 | str(1).zfill(2) |
Pandas
Pandas 是一个流行的 Python 数据分析库,它提供了强大的数据结构和数据分析工具。Pandas 的主要特点包括:
- 易于使用的数据结构和数据分析工具:Pandas 提供了一系列易于使用的数据结构,如 Series、DataFrame 和 GroupBy,以及强大的数据分析工具,如聚合函数和统计函数。
- 高效的数据处理能力:Pandas 使用高性能的 Cython 库进行计算,可以快速处理大规模的数据。
- 灵活的数据操作:Pandas 支持各种数据操作,如添加或删除列、合并数据、筛选数据等。
- 丰富的数据导入和导出功能:Pandas 支持从各种数据源导入数据,如 CSV、Excel、SQL 数据库等,并可以将数据导出到这些格式。
- 与其他 Python 库集成:Pandas 可以与其他流行的 Python 库集成,如 NumPy、Matplotlib 和 Scikit-learn。
以下是一些 Pandas 的常用功能:
- 读取和写入数据:使用 Pandas 可以轻松地读取和写入 CSV、Excel、SQL 数据库等格式的数据。
- 数据清洗和处理:Pandas 提供了各种数据清洗和处理功能,如缺失值处理、重复值处理、数据类型转换等。
- 数据聚合和分析:Pandas 支持对数据进行聚合和分析,如计算平均值、总和、标准差等统计指标。
- 数据可视化:Pandas 可以与 Matplotlib 库结合使用,实现数据可视化功能。
- 数据处理和管理:Pandas 提供了强大的数据管理功能,如合并数据、分割数据、筛选数据等。
总之,Pandas 是一个功能强大的 Python 数据分析库,可以广泛应用于数据处理、分析和管理等方面。
1 | def _get_db_connect(db_config, host=None): |
Anaconda python版本管理
conda
1 | ms_engine = create_engine("mysql+pymysql://root:123456@localhost:3306/test") |
pymysql 库的使用
python 定时执行库
1 | import schedule |
密码
1 | import random |
实现将秒数转换成人类可读的时分秒格式
1 | def seconds_to_hms(seconds): |
要使用 Python 处理 block_scan.csv
文件并按照你的要求进行操作,可以使用 pandas 库。以下是完整的代码示例:
- 按照第2列进行分组。
- 在每个分组内按照第4列从小到大排序。
- 找出第4列数字不连续的行并输出。
1 | import pandas as pd |
代码解释:
加载 CSV 文件:
- 使用
pd.read_csv
加载block_scan.csv
文件。
- 使用
分组:
- 使用
groupby
按照 CSV 文件的第2列进行分组(通过列的索引访问)。
- 使用
排序和查找不连续行:
- 定义一个函数
find_discontinuities
,对每个分组按照第4列进行排序,并通过计算相邻行的差值来查找不连续的行。 - 使用
diff
方法计算相邻行的差值,如果差值不为1,则认为该行是不连续的。
- 定义一个函数
应用函数:
- 使用
apply
方法将find_discontinuities
函数应用于每个分组,并将结果重置索引。
- 使用
删除辅助列:
- 删除辅助列
diff
,仅保留原始数据中的不连续行。
- 删除辅助列
输出结果:
- 打印不连续的行。
- 如果需要,可以将结果保存到新的 CSV 文件中。
确保 block_scan.csv
文件存在于当前工作目录下,或者提供文件的完整路径。运行该代码需要确保已安装 pandas 库,可以通过 pip install pandas
安装。