python 统计中国观鸟记录中心官网已观测的鸟类种类

python 统计中国观鸟记录中心官网已观测的鸟类种类

中国观鸟记录中心网站:https://www.birdreport.cn/

先下载官网 Excel 文件
在这里插入图片描述
文件放置目录如下:

  • home
    • dataset
      • xxx.xlsx
      • xxx.xlsx
      • xxx.xlsx
    • Excelgrep.py (进行文件内容提取的程序)
代码展示

具体代码可以看注释

# -*- coding: utf-8 -*-
# 中文太多避免乱码
import pandas as pd
import openpyxl
import os
# 使用字典存储鸟类信息
birds_info = {}
# 获取代码当前所在目录
home_path = os.getcwd()
# 获取 34 个 excel 所在目录
excels_path = os.path.join(home_path, 'dataset')
for excel_name in os.listdir(excels_path):# 获取文件名和路径print(excel_name)excel_path = os.path.join(excels_path, excel_name)# 读取文件内容excel_file = pd.read_excel(excel_path)# 按行读取文件信息for index, row in excel_file.iterrows():# 获取 excel 单行鸟类的信息row_dict = row.to_dict()# 使用中文名作为后面键值对输入的判断标志bird_c_name = row_dict['中文名']bird_e_name = row_dict['英文名称']bird_l_name = row_dict['拉丁学名']bird_id = row_dict['鸟种编号']# 用于临时存储单个鸟类的信息bird_info = {'英文名称': bird_e_name,'拉丁学名': bird_l_name,'鸟种编号': bird_id}print(bird_info)if bird_c_name not in birds_info:birds_info[bird_c_name] = bird_info# 打印成新的 excel
# 先将字典转换为 DataFrame
bird_excel = pd.DataFrame(birds_info).T  # .T 转置操作将行列互换# 再将 DataFrame 写入 Excel 文件
output_file = 'bird_excel.xlsx'  # 输出的 Excel 文件名,保存在 home_path 路径下
bird_excel.to_excel(output_file)
结果

在这里插入图片描述
在这里插入图片描述
一共 1379

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/751829.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于Ubuntu虚拟机突然上不了网的问题

今天刚重新把Ubuntu虚拟机下回来准备大干一场,结果去吃饭回来虚拟机就上不去网了,具体体现为右上角没有网络的图标,下图是有网络的情况,废话不多说,直接给出解决方案:博客在此 我就是运行了这三行代码就成功…

设计模式 — — 单例模式

一、是什么 单例模式只会在全局作用域下创建一次实例对象,让所有需要调用的地方都共享这一单例对象 二、实现 // 单例构造函数 function CreateSingleton (name) {this.name name;this.getName(); };// 获取实例的名字 CreateSingleton.prototype.getName func…

✅技术社区—跨域问题及解决方案

一、什么是跨域、为什么会跨域? 我们把问题分解 谁出现的跨域? 》 浏览器! 为何出现? 》 同源策略 什么是同源策略? 根据百度百科 同源策略/SOP(Same origin policy)是一种约定&#xff0…

Linux 时间系统调用

UNIX及LinuxQ的时间系统是由「新纪元时间」Epoch开始计算起。Epoch是指定为1970年1月1日凌晨零点零分零秒,格林威治时间。目前大部份的UNX系统都是用32位来记录时间,正值表示为1970以后,负值则表示1970年以前。 对于当前时间到Epoch 我们用两…

代码算法训练营day10 | 232.用栈实现队列、225. 用队列实现栈

day10: 232.用栈实现队列225. 用队列实现栈 232.用栈实现队列 题目链接 状态: 文档:programmercarl.com 思路: 用栈实现队列。要先明白两者的区别。 栈:单开门,先进后出,只有一端能进出。 队列:…

继承 ResponseEntityExceptionHandler

目录 作用概述 示例-HttpRequestMethodNotSupportedException 示例-自定义异常处理 总示例 使用了ResponseEntityExceptionHandler后,为什么发生了异常后返回体为空 方法执行顺序 作用概述 这是一个方便的基类,用于希望通过 ExceptionHandler 方法…

Vue项目的搭建

Node.js 下载 Node.js — Download (nodejs.org)https://nodejs.org/en/download/ 安装 测试 winR->cmd执行 node -v配置 在安装目录下创建两个子文件夹node_cache和node_global,我的就是 D:\nodejs\node_cache D:\nodejs\node_global 在node_global文件下再创建一个…

并查集(详解+例题)

1、作用 将两个集合合并 询问两个元素是否在一个集合中 2、基本原理 每个集合用一颗树表示。树根的编号就是整个集合的编号。每个节点存储它的父节点,p[x]表示x的父节点。 3、实现 问题1:如何判断树根:if(p[x]x); 问题2:如何求…

C++ 特殊类及单例模式

文章目录 1. 前言2. 不能被拷贝的类3. 不能被继承的类4. 只能在堆上创建对象的类5. 只能在栈上创建对象的类6. 只能创建一个对象的类(单例模式) 1. 前言 在实际场景中,我们在编写类的过程中总会遇到一些特殊情况,比如设计一个类不…

深入解析红黑树(RB-Tree):原理、操作及应用

文章目录 一、红黑树的特点与性质二、红黑树的实现1、实现红黑树的插入操作2、红黑树的验证方法a. Check 函数b. IsBalance 函数 红黑树作为一种自平衡的二叉搜索树,在计算机科学领域中占据着重要的地位。它的设计旨在在维持树的平衡性的同时,保证各种操…

红队攻防之exe文件签名免杀

达则兼善天下,穷则独善其身 1、生成 cobaltstrike bin文件,选择raw选项。 2、使用 cobaltstrike分离免杀工具生成loader.exe文件。 3、使用UPX对生成的exe文件进行加壳,加壳前后对比文件的大小。 4、对loader.exe进行制作并签发证书-数字签名…

UDF提权

目录 一、UDF概述 二、提权条件 三、漏洞复现 (一) 信息收集 1. Nmap信息收集 1.1、查看当前IP地址 1.2、扫描当前网段,找出目标机器 1.3、快速扫描目标机全端口 2. dirb目录扫描 3. 第一个flag 3.1、目录遍历漏洞 3.2、flag 4. 敏感信息利用 (二) 漏…

ElasticSearch常见用法,看这一篇就够了(文末送书)

2024送书福利正式起航 关注「哪吒编程」,提升Java技能 文末送3本《一本书讲透Elasticsearch:原理、进阶与工程实践》 大家好,我是哪吒。 ElasticSearch是一款由Java开发的开源搜索引擎,它以其出色的实时搜索、稳定可靠、快速安…

土壤水分实测数据网站资源

农田土壤水分数据 貌似是站点数据,但是年份太老,而且也没找着下载的地方 2012年黄土高原土壤水分及相关土壤物理参数数据集 2007-2009年中国农业大学石羊河实验站玉米通量与生长观测数据集 2005~2014年CERN野外台站气象观测场土壤含水量数据…

一维差分(模板)

差分是前缀和的逆运算&#xff0c;对于一个数组a&#xff0c;其差分数组b的每一项都是a [ i ]和前一项a [ i − 1 ]的差。 注意&#xff1a;差分数组和原数组必须分开存放&#xff01;&#xff01;&#xff01;&#xff01; #include <iostream> using namespace std;t…

【回归预测】基于SSA-BP(麻雀搜索算法优化BP神经网络)的回归预测 多输入单输出【Matlab代码#69】

文章目录 【可更换其他算法&#xff0c;获取资源请见文章第6节&#xff1a;资源获取】1. BP神经网络2. 麻雀搜索算法3. SSA-BP神经网络模型的构建4. 部分代码展示5. 仿真结果展示 【可更换其他算法&#xff0c;获取资源请见文章第6节&#xff1a;资源获取】 1. BP神经网络 BP&…

算法:一些DFS的经验

DFS:可以看作是向下遍历树的模拟 剪枝&#xff1a;减少时间复杂度 一个dfs所需要具备的元素&#xff1a; 一&#xff0c;出口 1.出口&#xff1a;每一个进入的dfs的出口&#xff0c;可以是枚举全部元素后退出该dfs,也可以是大于层数或剪枝条件........ 二&#xff0c;向下搜…

Linux:系统初始化,内核优化,性能优化(3)

优化系统的文件句柄数&#xff08;全局&#xff09; 也就是系统的最大文件数量 查看最大数量 cat /proc/sys/fs/file-max 当我们的服务器有非常大的一个数据并发的时候十几二十万的文件需要去配置&#xff0c;可能这个是远远不够的&#xff0c;我们就要去修改 vim /etc/sy…

springboot换日志框架后爆SLF4J: Class path contains multiple SLF4J bindings的解决办法

sringboot原本使用的是logback日志框架&#xff0c;将它去掉&#xff0c;修改为log4j2日志框架后&#xff0c;往往会出现以下错误&#xff1a; SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/C:/Users/admin/.m2/repository/ch/qos…

NuGet程序包管理器

文章目录 1.为什么要用包管理工具&#xff1f;2.常用的包管理工具3.Net中的包管理工具4.使用方式4.1 命令行使用4.2 图形界面 5.Tips 1.为什么要用包管理工具&#xff1f; 开发过程中几乎不可避免地要使用第三方包&#xff0c;当然可以不用包管理器。对于开源的项目可以直接引用…