python 统计中国观鸟记录中心官网已观测的鸟类种类
中国观鸟记录中心网站:https://www.birdreport.cn/
先下载官网 Excel 文件
文件放置目录如下:
- home
- dataset
- xxx.xlsx
- xxx.xlsx
- xxx.xlsx
- Excelgrep.py (进行文件内容提取的程序)
- dataset
代码展示
具体代码可以看注释
# -*- 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 种