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

news2024/11/19 8:31:30

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.coloradmin.cn/o/1521332.html

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

相关文章

day-21 前 K 个高频元素

思路:用ans[]存储频次最高的k个元素,用anslen[]存储对应的索引,将nums进行排序依次统计每个元素出现次数,再判断是否需要对ans[]和anslen[]进行替换,最后ans即为答案 注意点:遍历结束后,还需要…

数据库引论:2.SQL简介

SQL(Structured Query Language,结构化查询语言) 2.1 SQL查询语言概览 SQL语言包含 数据定义语言(Data-Definition Language,DDL)。SQL DDL提供定义关系模式、删除关系以及修改关系模式的命令。数据操纵语言(Data-Manipulation Language,DML)。SQL DML提供从数据库中查询信息…

【算法】AC自动机的优化:增量更新与删除

一、概述 AC自动机(Aho-Corasick Automation)是著名的多模匹配算法,源于贝尔实验室,并且在实际应用中得到广泛的引用,且具有以下特点: 只需要扫描一次文本,即可获取所有匹配该文本的模式串复杂…

小红书根据关键词取商品列表 API 返回值说明

小红书根据关键词取商品列表的API返回值通常包含与搜索请求相关的商品列表信息。这些信息包括匹配到的商品列表、商品详情、排序方式等。以下是一个简化的示例,展示了小红书根据关键词取商品列表API可能返回的JSON格式数据:获取调用详情链接 item_searc…

王道机试C++第8章递归与分治 Day35和蓝桥杯两道真题程序

第 8 章 递归与分治 递归是指:函数直接或间接调用自身的一种方法,通常可把一个复杂的大型问题层层转化为与原问题相似但规模较小的问题来求解。 递归策略只需少量的程序就可描述解题过程所需的多次重复计算,因此大大减少了程序的代码量。 8.…

一个命令查看自己的WIFI密码

一个命令查看自己的WIFI密码 忘记wifi密码怎么办?一个命令查看自己的wifi密码。 一、打开命令行 使用快捷键“WinR”,打开运行窗口,输入“cmd”后回车即可。 二、输入命令network shell命令 输入命令network shell,简称netsh&…

Android 面试题及答案整理,最新面试题

Android中Intent的作用及分类 Intent在Android中用作组件之间传递信息,它可以用于启动活动(activity)、服务(service)和发送广播(broadcast)。Intent主要分为显式Intent和隐式Intent两大类。 1、显式Intent: 直接指定了要启动的组件名称(比如…

【网络】详解HTTPS及探究加密过程

目录 一、什么是HTTPS1、加密解密是什么2、为什么要加密3、常见的加密方式1、对称加密2、非对称加密 二、探究HTTPS如何实现加密1、方案一----只使用对称加密2、方案二----只使用非对称加密3、方案三----双方都使用非对称加密4、方案四----非对称加密 对称加密5、中间人攻击6、…

企业微信 API 接口调用教程:深入解析企业微信 API 的用法

本文通过 access_token 凭证的方式来讲解怎么调用 企业微信 API,并一步步介绍如何获取企业微信 API 的 corpsecret、corpid、access_token 凭证以及怎么向企业微信的应用发送消息。 企业微信 API 在线地址为:qiyeweixin.apifox.cn/ ,这个在线…

STL:List从0到1

🎉个人名片: 🐼作者简介:一名乐于分享在学习道路上收获的大二在校生 🙈个人主页🎉:GOTXX 🐼个人WeChat:ILXOXVJE 🐼本文由GOTXX原创,首发CSDN&…

IO流(5)——转换流

不同编码读取出现乱码的问题 解决方法 字符输入转换流(InputStreamReader)

pytorch 入门基础知识(Pytorch 01)

一 深度学习基础相关 深度学习三个主要的方向:计算机视觉,自然语言,语音识别。 机器学习核心组件:1 数据集(data),2 前向传播的model(net),3 目标函数(loss), 4 调整模型参数和优化函数的算法…

【Linux-网络编程】

Linux-网络编程 ■ 网络结构■ C/S结构■ B/S结构 ■ 网络模型■ OSI七层模型■ TCP/IP四层模型 ■ TCP■ TCP通信流程■ TCP三次握手■ TCP四次挥手 ■ 套接字:socket 主机IP 主机上的进程(端口号)■ TCP传输文件 ■ 网络结构 ■ C/S结构…

Java学习记录(二十二)反射,动态代理

反射获取class对象的三种方式 1、Class.forName(全类名) 2、类名.class 3、对象.getClass() 实现代码如下: package com.itazhang.Demo1;public class MyReflectDemo1 {public static void main(String[] args) throws ClassNotFoundException {//第一种获取cl…

Nacos源码流程图

1.Nacos1.x版本服务注册与发现源码 流程图地址:https://www.processon.com/view/link/634695eb260d7157a7bc6adb 2.Nacos2.x版本服务注册与发现源码 流程图地址:https://www.processon.com/view/link/634695fb260d7157a7bc6ae0 3.Nacos2.x版本GRPC…

【Linux进程信号】信号的发送与保存

【Linux进程信号】信号的发送与保存 目录 【Linux进程信号】信号的发送与保存阻塞信号1. 信号其他相关常见概念2. 在内核中的表示3. sigset_t4. 信号集操作函数sigprocmasksigpendingsignal测试这几个系统调用接口 进程地址空间第三讲捕捉信号1. 内核如何实现信号的捕捉2. siga…

Jenkins 面试题及答案整理,最新面试题

Jenkins中如何实现持续集成与持续部署? Jenkins通过自动化构建、测试和部署应用程序来实现持续集成与持续部署(CI/CD)。这个过程包括以下步骤: 1、源代码管理: Jenkins支持与多种版本控制系统集成,如Git、…

Java项目:55 springboot基于SpringBoot的在线视频教育平台的设计与实现015

作者主页:舒克日记 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 在线视频教育平台分为管理员和用户、教师三个角色的权限模块。 管理员所能使用的功能主要有:首页、个人中心、用户管理、教师管理、课程信…

绝赞春招拯救计划 -- 操作系统,组成原理,计网

进程和线程 进程 一个在内存中运行的应用程序。每个进程都有自己独立的一块内存空间,一个进程可以有多个线程 线程 进程中的一个执行任务(控制单元),负责当前进程中程序的执行。一个进程至少有一个线程,一个进程可以…

关于Apache

文章目录 一、httpd 安装组成1、常见http 服务器程序2、apache 介绍和特点2.1 关于apache2.1.1 apache 功能2.1.2 apache特性 2.2 MPM multi-processing module 工作模式2.2.1 prefork2.2.2 worker2.2.3 event 3、Httpd 安装和相关文件3.1 包安装httpd并启动httpd服务3.1.1 版本…