当前位置: 首页 > news >正文

使用Python Pandas库操作Excel表格的技巧

在数据分析和处理中,我们经常需要对Excel表格进行操作。Python Pandas库提供了丰富的API来读取、写入、修改Excel表格。本文将介绍如何使用Python Pandas库操作Excel表格,包括向Excel表格添加新行、创建Excel表格等。

1.向Excel表格添加新行

下面是一个示例函数add_row_to_excel(),用于向Excel表格中添加新行:

def add_row_to_excel(row_data, sheet_name, excel_path, day_num=None):df = pd.read_excel(excel_path, header=0, sheet_name=sheet_name)  if day_num == None:  df_all = pd.DataFrame(data=None) df_all = pd.concat([df_all, df], ignore_index=True)  df = pd.DataFrame(row_data)df_all = pd.concat([df_all, df], ignore_index=True)data_list = df_all.drop_duplicates(keep='first')  df_all.to_excel(excel_path, index=False, sheet_name=sheet_name, encoding='utf-8')  else:  targrt = row_dataday_row_num = day_num + 1  df_dict = df.to_dict()for i in range(0, len(targrt)):key = list(targrt.keys())[i]  try:df_dict[key][day_row_num] = targrt[key][0]  except:  df_dict[int(key)][day_row_num] = targrt[key][0]  df_all = pd.DataFrame(df_dict)with pd.ExcelWriter(excel_path, mode='a', if_sheet_exists='replace') as writer:df_all.to_excel(writer, index=False, sheet_name=sheet_name)

该函数使用pandas库的read_excel()方法读取Excel表格数据,并通过concat()方法将原有数据和新行数据进行合并。其中,row_data参数表示新行的数据信息,sheet_name参数表示要操作的Excel表格中的表名,excel_path参数表示Excel文件路径,day_num参数表示要添加新行的位置。

2.创建Excel表格

下面是一个示例函数creat_excel_sheet(),用于创建Excel表格:

def creat_excel_sheet(sheet_name, stock_code_list, stock_name_list):pd_dict = {'时间': ['初次买入时间', '初次买入价格', '第1天开盘', '第2天开盘', '第3天开盘', '第4天开盘', '第5天开盘', '第6天开盘']}columns = len(stock_code_list)for i in range(0, columns):buy_time = str(d_buy)pd_dict[f'{stock_code_list[int(i)]}'] = [buy_time, "", "", "", "", "", "", ""]pd_dict[f'{stock_name_list[int(i)]}'] = [buy_time, "", "", "", "", "", "", ""]stock_signal_data = pd.DataFrame(pd_dict)try:with pd.ExcelWriter(Stock_templet_path, mode='a', engine='openpyxl') as writer:stock_signal_data.to_excel(writer, sheet_name=sheet_name)except:df = pd.read_excel(Stock_templet_path, sheet_name=sheet_name, dtype={0: "string"})row_column_num = df.shapeif ( row_column_num[1] - 2 ) / 2 < columns:df_dict = df.to_dict()df_dict[f'{stock_code_list[int(columns - 1)]}'] = {0:buy_time, 1:"", 2:"", 3:"", 4:"", 5:"", 6:"", 7:""}df_dict[f'{stock_name_list[int(columns - 1)]}'] = {0:buy_time, 1:"", 2:"", 3:"", 4:"", 5:"", 6:"", 7:""}df_all = pd.DataFrame(df_dict)with pd.ExcelWriter(Stock_templet_path, mode='a', if_sheet_exists='replace') as writer:df_all.to_excel(writer, index=False, sheet_name=sheet_name)

该函数创建一个Excel表格,并向其中写入数据。其中,sheet_name参数表示要创建的表名,stock_code_list和`stock_name_list参数分别表示股票代码和股票名称列表。

在这个函数中,我们首先创建了一个字典pd_dict用于组织Excel表格的列信息。通过循环遍历股票代码和名称列表,我们将它们作为列名添加到字典中,并设置初始值为空字符。最后,将字典转换成DataFrame对象,并使用to_excel()方法写入到Excel表格中。

需要注意的是,如果Excel表格已经存在,则需要使用read_excel()方法读取已有表格数据,并检查是否需要添加新的列信息。

以上便是使用Python Pandas库操作Excel表格的技巧。通过这些API,我们可以轻松地读取、修改和写入Excel表格数据,提高数据处理和分析的效率。

股票自动化处理见:https://yangfei.blog.csdn.net/article/details/129832565?spm=1001.2014.3001.5502

相关文章:

使用Python Pandas库操作Excel表格的技巧

在数据分析和处理中&#xff0c;我们经常需要对Excel表格进行操作。Python Pandas库提供了丰富的API来读取、写入、修改Excel表格。本文将介绍如何使用Python Pandas库操作Excel表格&#xff0c;包括向Excel表格添加新行、创建Excel表格等。 1.向Excel表格添加新行 下面是一个…...

LeetCode练习七:动态规划上:线性动态规划

文章目录一、 动态规划基础知识1.1 动态规划简介1.2 动态规划的特征1.2.1 最优子结构性质1.2.2 重叠子问题性质1.2.3 无后效性1.3 动态规划的基本思路1.4 动态规划基础应用1.4.1 斐波那契数1.4.2 爬楼梯1.4.3 不同路径1.5 个人总结二、记忆化搜索2.1 记忆化搜索简介2.2 记忆化搜…...

基于正点原子F407开发版和SPI接口屏移植touchgfx完整教程(一)

一、相关软件包安装 1、打开cubemx包管理器 2、安装F4软件包 3、安装touchgfx软件包 二、工程配置 1、新建工程 2、sys配置 3、rcc配置 4、crc配置 5、添加touchgfx软件包 6、配置touchgfx软件包 将width和height改为自己屏幕尺寸 7、生成工程 三、代码修改 1、将屏幕相关驱…...

Linux--进程间通信

前言 上一篇相关Linux文章已经时隔2月&#xff0c;Linux的学习也相对于来说是更加苦涩&#xff1b;无妨&#xff0c;漫漫其修远兮,吾将上下而求索。 下面该片文章主要是对进程间通信进行介绍&#xff0c;还对管道&#xff0c;消息队列&#xff0c;共享内存&#xff0c;信号量都…...

hadoop伪分布式集群搭建

基于hadoop 3.1.4 一、准备好需要的文件 1、hadoop-3.1.4编译完成的包 链接: https://pan.baidu.com/s/1tKLDTRcwSnAptjhKZiwAKg 提取码: ekvc 2、需要jdk环境 链接: https://pan.baidu.com/s/18JtAWbVcamd2J_oIeSVzKw 提取码: bmny 3、vmware安装包 链接: https://pan.baidu…...

Qt 中的信息输出机制:QDebug、QInfo、QWarning、QCritical 的简单介绍和用法

Qt 中的信息输出机制介绍QDebug在 Qt 中使用 qDebug输出不同类型的信息浮点数&#xff1a;使用 %!f(MISSING) 格式化符号输出浮点数布尔值&#xff1a;使用 %! (MISSING)和 %! (MISSING)格式化符号输出布尔值对象&#xff1a;使用 qPrintable() 函数输出对象的信息qInfoqWarnin…...

C++读写excel文件的的第三方库

一、比较流行的库 1. OpenXLSX 用于读取、写入、创建和修改 Microsoft Excel (.xlsx) 文件的 C 库。 2. xlnt xlnt 是一个现代 C 库&#xff0c;用于操作内存中的电子表格以及从 XLSX 文件读取/写入它们&#xff0c;如ECMA 376 第 4 版中所述。xlnt 1.0 版的首次公开发布是在 …...

【关于Linux中----多线程(一)】

文章目录认识线程创建线程线程优点和缺点创建一批线程终止线程线程的等待问题认识线程 在一个程序里的一个执行路线就叫做线程&#xff08;thread&#xff09;。更准确的定义是&#xff1a;线程是“一个进程内部的控制序列”一切进程至少都有一个执行线程线程在进程内部运行&a…...

2023年全国最新安全员精选真题及答案34

百分百题库提供安全员考试试题、建筑安全员考试预测题、建筑安全员ABC考试真题、安全员证考试题库等&#xff0c;提供在线做题刷题&#xff0c;在线模拟考试&#xff0c;助你考试轻松过关。 11.&#xff08;单选题&#xff09;物料提升机附墙架设置要符合设计要求&#xff0c;但…...

数据出境是什么意思?我国数据出境合规要求是什么?

随着经济全球化深入以及云计算等技术的发展&#xff0c;数据在全球范围跨境流动。数据跨境在促进经济增长、加速创新的同时&#xff0c;对数据主权、数据权属、个人信息保护等一系列问题逐渐浮出水面。今天我们就先来了解一下数据出境是什么意思&#xff1f;我国数据出境合规要…...

Liunx——Git工具使用

目录 1&#xff09;使用 git 命令行安装 git 2&#xff09;在 Gitee 创建仓库 创建仓库 3&#xff09;Linux克隆仓库到本地 4&#xff09;提交代码三板斧&#xff1a; 1.三板斧第一招: git add 2.三板斧第二招: git commit 3.三板斧第三招: git push 5&#xff09;所遇…...

微软语音合成工具+基于Electron + Vue + ElementPlus + Vite 构建并能将文字转换为语音 MP3

微软语音合成工具基于Electron Vue ElementPlus Vite 构建并能将文字转换为语音 MP3 资源下&#xff1a;微软语音合成工具基于ElectronVueElementPlusVite构建并能将文字转换为语音MP3资源-CSDN文库 本文将介绍如何使用微软语音合成工具和前端技术栈进行开发&#xff0c;…...

Mongodb学习笔记2

文章目录前言一、搭建项目二、开始编写java代码1. 新增2.查询3. 修改4. 删除5.根据条件查询6. 关联查询7. 索引相关总结前言 MongoTemplate 相关操作 CRUD,聚合查询等; 一、搭建项目 springboot项目创建引入mongo 依赖docker 安装好mongo数据库配置yml 链接mongo spring:dat…...

学习Tensorflow之基本操作

学习Tensorflow之基本操作Tensorflow基本操作1. 创建张量(1) 创建标量(2) 创建向量(3) 创建矩阵(4) shape属性(5) 判别张量类型(6) 列表和ndarray转张量2. 创建特殊张量(1) tf.ones与tf.ones_like(2) tf.zeros与tf.zeros_like(3) tf.fill(3) tf.random.normal(4) tf.random.uni…...

《Spring系列》第2章 解析XML获取Bean

一、基础代码 Spring加载bean实例的代码 public static void main(String[] args) throws IOException {// 1.获取资源Resource resource new ClassPathResource("bean.xml");// 2.获取BeanFactoryDefaultListableBeanFactory factory new DefaultListableBeanFa…...

小红书20230326暑假实习笔试

第一题&#xff1a;加密 小明学会了一种加密方式。他定义suc(x)为x在字母表中的后继&#xff0c;例如a的后继为b&#xff0c;b的后继为c… &#xff08;即按字母表的顺序后一个&#xff09;。特别的&#xff0c;z的后继为a。对于一个原字符串S&#xff0c;将其中每个字母x都替…...

【java】不要二、把字符串转成整数

目录 &#x1f525;一、编程题 1.不要二 2.把字符串转换成整数 &#x1f525;一、编程题 1.不要二 链接&#xff1a;不要二_牛客题霸_牛客网 (nowcoder.com) 描述&#xff1a;二货小易有一个W*H的网格盒子&#xff0c;网格的行编号为0~H-1&#xff0c;网格的列编号为0~W-1…...

数据的质量管控工作

数据的质量管控工作&#xff0c;整个工作应该围绕启动阶段制定的目标进行。适当引入一些质量管控工具可帮助我们更高效的完成工作。 第一步、数据剖析 首先应该进行已知数据问题的评估&#xff0c;这里评估的范围也应控制本轮管控的目标范围内。其次&#xff0c;通过对数据进行…...

【SpringBoot笔记29】SpringBoot集成RabbitMQ消息队列

这篇文章,主要介绍SpringBoot如何集成RabbitMQ消息队列。 目录 一、集成RabbitMQ 1.1、引入amqp依赖 1.2、添加连接信息 1.3、添加RabbitMQ配置类...

前端架构师-week2-脚手架架构设计和框架搭建

将收获什么 脚手架的实现原理 Lerna的常见用法 架构设计技巧和架构图绘制方法 主要内容 学习如何以架构师的角度思考基础架构问题 多 Package 项目管理痛点和解决方案&#xff0c;基于 Lerna 脚手架框架搭建 imooc-cli 脚手架需求分析和架构设计&#xff0c;架构设计图 附赠内…...

技术赋能B端拓客:号码核验行业的迭代与价值升级,氪迹科技法人股东号码核验筛选,阶梯式价格

2026年&#xff0c;B端市场竞争日趋激烈&#xff0c;拓客逻辑已从“规模扩张”转向“价值深耕”&#xff0c;“精准、高效、低成本”成为所有拓客团队的核心追求。号码核验作为B端拓客的前置基础性环节&#xff0c;其服务质量直接决定线索价值、人力效能与投入回报比&#xff0…...

OpenClaw技能扩展:千问3.5-35B-A3B-FP8驱动的内容生成与发布

OpenClaw技能扩展&#xff1a;千问3.5-35B-A3B-FP8驱动的内容生成与发布 1. 为什么选择OpenClaw千问3.5做内容自动化 去年冬天&#xff0c;当我第一次尝试用AI自动化完成公众号内容生产时&#xff0c;经历了典型的"缝合怪"工作流&#xff1a;ChatGPT生成初稿→Midj…...

实战指南:基于同一份OpenSpec,用快马平台同步生成前后端代码,确保联调无忧

最近在开发一个电商平台时&#xff0c;我们团队遇到了前后端联调效率低下的问题。由于接口文档和实际代码存在差异&#xff0c;经常出现前端调用参数和后端接收不一致的情况。后来我们发现&#xff0c;基于OpenSpec规范同步生成前后端代码可以完美解决这个问题&#xff0c;这里…...

OpenClaw初学者套装:Qwen3.5-9B镜像+5个基础技能

OpenClaw初学者套装&#xff1a;Qwen3.5-9B镜像5个基础技能 1. 为什么选择这个组合&#xff1f; 上周六下午&#xff0c;我盯着电脑里散落各处的会议纪要、参考文章和代码片段&#xff0c;突然意识到自己每天要重复几十次"CtrlF→切换窗口→复制粘贴"的操作。作为一…...

SAP FI模块实战:OBC4配置字段状态变式全流程解析(含常见报错处理)

SAP FI模块深度实战&#xff1a;OBC4字段状态变式配置与冲突解决指南 1. 字段状态变式的核心价值与应用场景 在SAP财务模块中&#xff0c;字段状态变式&#xff08;Field Status Variants&#xff09;是控制会计凭证输入界面的关键配置项。它决定了用户在创建财务凭证时&#x…...

STM32环境检测系统设计与物联网应用

1. 项目概述这个基于STM32的环境检测系统是我去年为一个工业客户开发的解决方案&#xff0c;经过3个月的迭代优化已经稳定运行了半年多。系统通过多种传感器实时监测环境参数&#xff0c;并将数据上传至OneNet云平台&#xff0c;实现了本地和远程的双重监控。提示&#xff1a;项…...

解决Python ssl模块与系统OpenSSL版本不一致的编译指南

1. 为什么Python的ssl模块会与系统OpenSSL版本不一致&#xff1f; 很多开发者都遇到过这样的困惑&#xff1a;明明系统已经升级了OpenSSL&#xff0c;为什么Python的ssl模块还在使用旧版本&#xff1f;这个问题其实源于Python的编译机制。Python在编译安装时&#xff0c;会将当…...

DevOps实践:如何让开发、测试、运维不再“打架”?

质量不再是孤岛在追求快速迭代的现代软件开发中&#xff0c;开发、测试与运维团队之间的隔阂与摩擦&#xff0c;常常被戏称为“部门战争”。开发团队渴望快速交付新功能&#xff0c;测试团队需要足够的时间来保障质量&#xff0c;而运维团队则首要追求系统的稳定与可靠。当发布…...

手把手教你用ZEMAX复现Thorlabs锥透镜生成贝塞尔光束(附Edmund透镜库文件)

手把手教你用ZEMAX复现Thorlabs锥透镜生成贝塞尔光束&#xff08;附Edmund透镜库文件&#xff09; 在光学工程领域&#xff0c;贝塞尔光束因其无衍射特性和自修复能力&#xff0c;在激光加工、光学捕获和生物成像等应用中展现出独特优势。本文将带您从零开始&#xff0c;在ZEM…...

实战指南:基于快马平台与Playwright打造自动化的网站内容监测应用

今天想和大家分享一个非常实用的自动化监测方案——基于Playwright和InsCode(快马)平台搭建的新闻网站更新监测系统。这个项目特别适合需要追踪行业动态或竞品资讯的朋友&#xff0c;整个过程不需要复杂的服务器配置&#xff0c;用快马平台就能轻松实现部署和定时运行。 项目背…...