Pandas核心入门:彻底理解Series与DataFrame
引言在Python数据分析领域,Pandas库是当之无愧的瑞士军刀。其核心数据结构Series和DataFrame承载了90%以上的数据处理场景。本文将深入剖析这两个数据结构的特性和用法,帮助你真正掌握它们的核心逻辑。 一、Series:带标签的一维数组1.1 什么是Series?Series是Pandas中最基础的带标签的一维数组,可以看作Excel中的单列数据,但功能更加强大。 核心特征: 包含一组数据(任何NumPy数据类型) 包含一组索引(默认从0开始的自增索引) 数据与索引自动对齐 #从列表中创建prices=pd.Series([1, 2, 3, 4, 5, 6, 7, 8, 9], index=['A', 'B', 'C', 'D', 'E',...
Python协程入门必读:从生成器基础到async/await实战
协程(Coroutine)是Python异步编程的核心,但许多开发者对其底层原理和演进过程一知半解。本文将通过生成器进化史的视角,带您从基础到实战完整掌握协程开发,最后还会揭秘async/await背后的魔法。 一、理解生成器(Generator)生成器是一种惰性计算的迭代器,用 yield 关键字定义。它不会一次性生成所有数据,而是按需生成。 1.1 生成器的本质def simple_gen(): print("start") yield 1 print("continue") yield 2gen=simple_gen()print('=====>test')print(next(gen))print('=====>test')print(next(gen))# 执行结果# =====>test# start# 1# =====>test# continue#...
一文彻底搞懂Python实例方法、类方法和静态方法的区别
1. 概述 **实例方法(Instance Method)**:绑定对象实例,可操作实例属性 **类方法(Class Method)**:绑定类本身,可操作类属性 **静态方法(Static Method)**:独立工具函数,不绑定实例或类 2. 实例方法基本特性 定义格式:默认第一个参数为self 访问权限:可访问实例属性和类属性 调用方式:必须通过类实例调用 代码示例class MyClass: def instance_method(self): print(f"实例方法调用,实例属性: {self.instance_attr}") print(f"类属性: {MyClass.class_attr}")obj = MyClass()obj.instance_attr = "Hello"MyClass.class_attr = "World"obj.instance_method() 3....
深入理解Python上下文管理器
1. 什么是上下文管理器? 2. with语句的魔法 3. 创建上下文管理器的两种方式 3.1 基于类的实现 3.2 使用contextlib模块 4. 异常处理 1. 什么是上下文管理器?上下文管理器(Context Manager)是Python中用于精确分配和释放资源的机制。它通过__enter__()和__exit__()两个魔术方法实现了上下文管理协议,确保即使在代码执行出错的情况下,资源也能被正确清理。 # 经典文件操作对比# 传统方式f = open("data.txt")try: content = f.read()finally: f.close()# 上下文管理器方式with open("data.txt") as f: content = f.read() 典型应用场景包括: 文件操作(自动关闭) 数据库连接(自动归还连接池) 线程锁(自动释放) 临时修改配置(自动恢复) 2. with语句的魔法with语句是上下文管理器的语法载体,其工作原理如下: class...
Python异常处理:从防御性编程到优雅降级的高级实践
前言在Python开发中,异常处理常被视为初级主题,但真正优秀的异常处理策略往往体现了开发者对系统可靠性的深刻理解。本文不讨论基础的try/except语法,而是聚焦于生产环境中异常处理的进阶实践,探讨如何构建具有容错性、可观测性的健壮系统。 一、异常处理三原则1. 语义化异常捕获避免宽泛的Exception捕获,但也不要过度细分。建议按照业务逻辑分层捕获: class DataValidationError(Exception): passdef process_data(data): try: validate(data) # 可能抛出DataValidationError transform(data) # 可能抛出ValueError except DataValidationError as e: logger.error(f"业务校验失败: {e}") raise APIValidationError from e except...
小说字体反爬破解指南——Python实现woff2字体逆向解析与OCR识别
技术背景小说等平台采用动态woff2字体实现文字反爬,传统CSS映射方法已无法满足需求。本文通过Python实现: 使用fontTools解析woff2字体结构 基于FreeTypePen绘制矢量字形 结合Tesseract OCR实现字符识别 构建完整字体映射表 环境准备# 核心依赖库pip install fonttools pillow pytesseract 代码from fontTools.ttLib import TTFontfrom fontTools.pens.freetypePen import FreeTypePenfrom fontTools.misc.transform import Offsetimport osimport pytesseract# todo 根据实际情况需要修改 配置 Tesseract 路径(Windows 需指定)pytesseract.pytesseract.tesseract_cmd = r'D:\Program Files (x86)\Tesseract-OCR\tesseract.exe'def...
用Babel操作AST实现JavaScript代码的自动化生成与转换
学习本文后,你将能够开发自己的代码转换工具! 目录 目录 环境搭建 常见节点类型 代码:修改AST的逻辑 重命名函数名 重命名变量并修改变量值 函数调用替换 控制流扁平化还原 删除未使用的变量 对象属性简化 条件表达式优化 表达式还原 环境搭建 安装环境npm install @babel/parser @babel/traverse @babel/generator @babel/types ast转换的代码框架const fs = require('fs');const vm = require('node:vm');const parser = require('@babel/parser');const traverse = require('@babel/traverse').default;const t = require('@babel/types');const generator =...
music163逆向-python
声明本文章所有内容仅供学习交流使用,不用于其他任何目的,严禁用于商业用途和非法用途,否则,由此产生的一切后果均与作者无关,若有侵权,请联系作者立即删除! Code from Crypto.Cipher import AES from base64 import b64encode from Crypto.Util.Padding import pad import random import json import requests headers = { ‘Accept’: ‘/‘, ‘Accept-Encoding’: ‘gzip,deflate,sdch’, ‘Accept-Language’: ‘zh-CN,zh;q=0.8,gl;q=0.6,zh-TW;q=0.4’, ‘Connection’: ‘keep-alive’, ‘Content-Type’:...