首页
学习
活动
专区
圈层
工具
发布

#python

广泛使用的高级编程语言,属于通用型编程语言

openpyxl 把多个结构相同的 sheet 合并到一个 sheet,怎么保留各自的原格式?

紫风十五年服务端架构专家,用高可用承载亿级流量,用高性能支撑毫秒级响应。为业务增长提供坚实的技术底座。
openpyxl 复制单元格时默认只搬 value 不搬 style,所以格式全丢。核心办法是用 copy() 逐个属性搬。 关键代码: from copy import copy def copy_style(src, dst): dst.font = copy(src.font) dst.fill = copy(src.fill) dst.border = copy(src.border) dst.alignment = copy(src.alignment) dst.number_format = src.number_format dst.protection = copy(src.protection) 然后遍历每个 sheet 的每个单元格,把 value 和 style 分别写到目标 sheet。有几个坑要注意: copy(src.font) 必须深拷贝,直接赋值会让多个单元格共享同一个 style 对象,改一个全变。 列宽不会跟着单元格走,需要用 target.column_dimensions[letter].width 单独同步,通常取第一个 sheet 的就行。 数字格式靠 number_format 同步,否则百分比、日期、会计格式全变成裸数字。 合并单元格(merged cells)不会自动搬,如果源表有跨行跨列的合并表头,需要额外用 target.merge_cells() 重建。 公式的话 openpyxl 只存字符串不重算,建议源文件先用 data_only=True 读值再写。... 展开详请

pandas 按月份对日期序列分组求和,resample 和 groupby 哪个更高效?

技术方舟

科大讯飞 | 资深架构师 (已认证)

江湖人称“山哥”,在数字化、人工智能、电商和金融等领域积累了丰富的平台架构设计经验
没有绝对更快的答案,关键取决于数据是否已按日期排序、是否已有 DatetimeIndex,以及是否需要补齐空月份。 已是按时间排序的 DatetimeIndex,且需要完整月度时间序列:优先 resample。 date 只是普通列,只需要实际出现过的月份:通常优先 groupby。 千万级数据中,排序和复制往往比“groupby 还是 resample”本身更影响性能与内存。... 展开详请

openpyxl 写几十万行到 Excel 很慢还内存爆,怎么分页或流式写入?

技术方舟

科大讯飞 | 资深架构师 (已认证)

江湖人称“山哥”,在数字化、人工智能、电商和金融等领域积累了丰富的平台架构设计经验

最稳的思路是:用真正的流式写出,同时尽量别在内存里构造整批big_rows

pandas 读 csv 中文乱码,gbk/utf-8 都试过还乱,怎么系统排查?

标题:openpyxl 写几十万行到 Excel 很慢还内存爆,怎么分页或流式写入?

技术方舟

科大讯飞 | 资深架构师 (已认证)

江湖人称“山哥”,在数字化、人工智能、电商和金融等领域积累了丰富的平台架构设计经验

最稳的做法是两条路选其一:

  • 继续用 openpyxl:开启 write_only=True + 用 WriteOnlyCell 做样式(表头)
  • 要性能和稳定性优先:改用 xlsxwriter(支持流式写入,还能保留格式/公式)

pandas 按月份对日期序列分组求和,resample 和 groupby 哪个更高效?

openpyxl 把多个结构相同的 sheet 合并到一个 sheet,怎么保留各自的原格式?

openpyxl 生成抽凭底稿时,分层抽样规则怎么用 Python 编码才不漏掉异常凭证?

Python 在审计里能不能落地?

如果更高效的做量化策略的收益率回测和分析?

python请求?

WorkBuddy 更新后,在Windows ACP模式下不仅Python无法执行,连创建Word文档都卡死,这是否属于重大兼容性回退?

WorkBuddy更新后Windows ACP模式拦截Python执行,严重影响正常使用?

+1+1,更新后好多功能受限,后面测试了一下,创一个word文档创半天创不出来,这根普通AI有什么区别呢

workbuddy升级后无法直接调用python?

Workbuddy 更新后无法调用python?

Pages,手动部署没有python架构选项,可是模板显示有?

EdgeOne 小助手

腾讯云 | 产品运营 (已认证)

您好,这里的框架主要是前端业务框架,而python是函数类型,比如next.js和python 函数可以共存,这里显示的就是next.js。python函数会自动进行处理,如果只有python函数,没有前端框架,那这里就对应other

如何用python爬网页数据?

技术方舟

科大讯飞 | 资深架构师 (已认证)

江湖人称“山哥”,在数字化、人工智能、电商和金融等领域积累了丰富的平台架构设计经验

开源 https://github.com/CloakHQ/CloakBrowser CloakBrowser不要太香了

如何用python爬网页数据并每天追加Excel?

如何在Python中连接ADO数据库?

在Python中连接ADO(ActiveX Data Objects)数据库通常通过`pywin32`库实现,该库提供了对Windows COM组件的访问,包括ADO。以下是具体步骤和示例: ### 方法步骤 1. **安装依赖**:确保已安装`pywin32`库(通过`pip install pywin32`)。 2. **使用ADODB对象**:通过COM接口创建ADODB连接对象,指定数据源(如SQL Server、Access等)。 3. **执行操作**:连接后执行SQL查询或命令。 ### 示例代码 ```python import win32com.client # 创建ADODB连接对象 conn = win32com.client.Dispatch(r'ADODB.Connection') # 连接字符串示例(SQL Server) # 格式:Provider=SQLOLEDB;Data Source=服务器地址;Initial Catalog=数据库名;User ID=用户名;Password=密码; connection_string = ( "Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=YourDatabase;" "User ID=your_username;Password=your_password;" ) try: conn.Open(connection_string) print("连接成功!") # 执行查询 rs = win32com.client.Dispatch(r'ADODB.Recordset') rs.Open("SELECT * FROM YourTable", conn) while not rs.EOF: print(rs.Fields.Item("ColumnName").Value) # 替换为实际列名 rs.MoveNext() rs.Close() except Exception as e: print(f"错误: {e}") finally: if conn.State == 1: # 1表示连接已打开 conn.Close() ``` ### 关键说明 - **连接字符串**:根据数据库类型调整(如Access用`Provider=Microsoft.ACE.OLEDB.12.0`)。 - **适用场景**:仅限Windows环境,依赖系统已安装的数据库驱动(如SQL Native Client)。 - **替代方案**:非Windows环境建议用标准库(如`pyodbc`或`pymssql`)。 ### 腾讯云相关产品推荐 若将数据库部署在云端,可使用**腾讯云数据库SQL Server**或**MySQL**,搭配**腾讯云服务器(CVM)**运行Python代码。通过**腾讯云私有网络(VPC)**确保安全连接,并使用**腾讯云监控(Cloud Monitor)**跟踪数据库性能。... 展开详请
在Python中连接ADO(ActiveX Data Objects)数据库通常通过`pywin32`库实现,该库提供了对Windows COM组件的访问,包括ADO。以下是具体步骤和示例: ### 方法步骤 1. **安装依赖**:确保已安装`pywin32`库(通过`pip install pywin32`)。 2. **使用ADODB对象**:通过COM接口创建ADODB连接对象,指定数据源(如SQL Server、Access等)。 3. **执行操作**:连接后执行SQL查询或命令。 ### 示例代码 ```python import win32com.client # 创建ADODB连接对象 conn = win32com.client.Dispatch(r'ADODB.Connection') # 连接字符串示例(SQL Server) # 格式:Provider=SQLOLEDB;Data Source=服务器地址;Initial Catalog=数据库名;User ID=用户名;Password=密码; connection_string = ( "Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=YourDatabase;" "User ID=your_username;Password=your_password;" ) try: conn.Open(connection_string) print("连接成功!") # 执行查询 rs = win32com.client.Dispatch(r'ADODB.Recordset') rs.Open("SELECT * FROM YourTable", conn) while not rs.EOF: print(rs.Fields.Item("ColumnName").Value) # 替换为实际列名 rs.MoveNext() rs.Close() except Exception as e: print(f"错误: {e}") finally: if conn.State == 1: # 1表示连接已打开 conn.Close() ``` ### 关键说明 - **连接字符串**:根据数据库类型调整(如Access用`Provider=Microsoft.ACE.OLEDB.12.0`)。 - **适用场景**:仅限Windows环境,依赖系统已安装的数据库驱动(如SQL Native Client)。 - **替代方案**:非Windows环境建议用标准库(如`pyodbc`或`pymssql`)。 ### 腾讯云相关产品推荐 若将数据库部署在云端,可使用**腾讯云数据库SQL Server**或**MySQL**,搭配**腾讯云服务器(CVM)**运行Python代码。通过**腾讯云私有网络(VPC)**确保安全连接,并使用**腾讯云监控(Cloud Monitor)**跟踪数据库性能。

如何使用Python客户端操作向量数据库?

使用Python客户端操作向量数据库通常通过官方SDK或第三方库实现,核心步骤包括连接数据库、创建集合/索引、插入向量数据、执行相似性搜索等。以下是具体方法和示例: --- ### **1. 连接数据库** 以腾讯云向量数据库(Tencent Cloud VectorDB)为例,首先安装官方Python SDK: ```bash pip install tcvectordb ``` 通过API密钥和端点连接: ```python from tcvectordb import Client client = Client( uri="https://<your-cluster-endpoint>.api.tcvectordb.com", # 替换为实际端点 token="<your-api-key>", # 替换为API密钥 db_name="default_db" # 默认数据库名 ) ``` --- ### **2. 创建集合(Collection)** 集合是存储向量数据的逻辑单元,需定义字段和索引: ```python collection = client.create_collection( collection_name="image_embeddings", dimension=512, # 向量维度(如CLIP模型输出512维) description="存储图片向量数据" ) ``` --- ### **3. 插入向量数据** 插入包含向量字段和其他元数据的文档: ```python import numpy as np # 示例:插入一个图片的向量(假设为512维numpy数组) vector_data = { "_id": "img_001", # 唯一ID "vector": np.random.rand(512).tolist(), # 转为列表格式 "metadata": {"category": "nature", "tags": ["mountain", "sunset"]} } collection.insert([vector_data]) # 支持单条或多条插入 ``` --- ### **4. 创建索引(提升搜索效率)** 在向量字段上创建IVF_FLAT或HNSW等索引: ```python collection.create_index( field_name="vector", index_params={ "index_type": "IVF_FLAT", # 索引类型 "metric_type": "COSINE", # 相似度度量(COSINE/IP/L2) "params": {"nlist": 100} # 聚类中心数(IVF特有参数) } ) ``` --- ### **5. 执行相似性搜索** 通过向量检索相似数据(例如查找与输入向量最接近的Top 3结果): ```python query_vector = np.random.rand(512).tolist() results = collection.search( data=[query_vector], anns_field="vector", # 指定向量字段 param={"metric_type": "COSINE", "params": {"nprobe": 10}}, limit=3, # 返回结果数 output_fields=["metadata"] # 额外返回的字段 ) for hit in results[0]: # 遍历Top 3结果 print(f"ID: {hit.id}, 相似度: {hit.score:.4f}, 元数据: {hit.entity.get('metadata')}") ``` --- ### **6. 其他操作** - **删除数据**:`collection.delete(filter_expr="_id == 'img_001'")` - **更新数据**:`collection.upsert([updated_vector_data])` - **清空集合**:`collection.drop()` --- ### **腾讯云相关产品推荐** - **腾讯云向量数据库(Tencent Cloud VectorDB)**:专为AI场景优化的托管服务,支持千亿级向量规模,兼容开源接口(如FAISS),提供自动分片、持久化存储和低延迟查询。 - **配套工具**:结合腾讯云TI平台可快速构建从特征提取到向量检索的完整AI流水线。 通过上述步骤,Python开发者可以高效管理向量数据,适用于图像检索、语义搜索、推荐系统等场景。... 展开详请
使用Python客户端操作向量数据库通常通过官方SDK或第三方库实现,核心步骤包括连接数据库、创建集合/索引、插入向量数据、执行相似性搜索等。以下是具体方法和示例: --- ### **1. 连接数据库** 以腾讯云向量数据库(Tencent Cloud VectorDB)为例,首先安装官方Python SDK: ```bash pip install tcvectordb ``` 通过API密钥和端点连接: ```python from tcvectordb import Client client = Client( uri="https://<your-cluster-endpoint>.api.tcvectordb.com", # 替换为实际端点 token="<your-api-key>", # 替换为API密钥 db_name="default_db" # 默认数据库名 ) ``` --- ### **2. 创建集合(Collection)** 集合是存储向量数据的逻辑单元,需定义字段和索引: ```python collection = client.create_collection( collection_name="image_embeddings", dimension=512, # 向量维度(如CLIP模型输出512维) description="存储图片向量数据" ) ``` --- ### **3. 插入向量数据** 插入包含向量字段和其他元数据的文档: ```python import numpy as np # 示例:插入一个图片的向量(假设为512维numpy数组) vector_data = { "_id": "img_001", # 唯一ID "vector": np.random.rand(512).tolist(), # 转为列表格式 "metadata": {"category": "nature", "tags": ["mountain", "sunset"]} } collection.insert([vector_data]) # 支持单条或多条插入 ``` --- ### **4. 创建索引(提升搜索效率)** 在向量字段上创建IVF_FLAT或HNSW等索引: ```python collection.create_index( field_name="vector", index_params={ "index_type": "IVF_FLAT", # 索引类型 "metric_type": "COSINE", # 相似度度量(COSINE/IP/L2) "params": {"nlist": 100} # 聚类中心数(IVF特有参数) } ) ``` --- ### **5. 执行相似性搜索** 通过向量检索相似数据(例如查找与输入向量最接近的Top 3结果): ```python query_vector = np.random.rand(512).tolist() results = collection.search( data=[query_vector], anns_field="vector", # 指定向量字段 param={"metric_type": "COSINE", "params": {"nprobe": 10}}, limit=3, # 返回结果数 output_fields=["metadata"] # 额外返回的字段 ) for hit in results[0]: # 遍历Top 3结果 print(f"ID: {hit.id}, 相似度: {hit.score:.4f}, 元数据: {hit.entity.get('metadata')}") ``` --- ### **6. 其他操作** - **删除数据**:`collection.delete(filter_expr="_id == 'img_001'")` - **更新数据**:`collection.upsert([updated_vector_data])` - **清空集合**:`collection.drop()` --- ### **腾讯云相关产品推荐** - **腾讯云向量数据库(Tencent Cloud VectorDB)**:专为AI场景优化的托管服务,支持千亿级向量规模,兼容开源接口(如FAISS),提供自动分片、持久化存储和低延迟查询。 - **配套工具**:结合腾讯云TI平台可快速构建从特征提取到向量检索的完整AI流水线。 通过上述步骤,Python开发者可以高效管理向量数据,适用于图像检索、语义搜索、推荐系统等场景。
领券