Python实现Excel文件的合并(以新冠疫情数据为例)

 更新时间:2022年03月19日 14:22:48   作者:渴望成为寂寞胜者  
这篇将以新冠疫情数据为例,详细介绍了如何利用Python实现合并Excel文件,文中的示例代码讲解详细,感兴趣的可以了解一下

注:本篇文章以新冠疫情数据文件的合并为例。

需要相关数据的请移步:》2020-2022年新冠疫情数据

一、单目录下面的数据合并

将2020下的所有文件进行合并,成一个文件:

import requests
import json
import openpyxl
import datetime
import datetime as dt
import time
import pandas as pd
import csv
from openpyxl import load_workbook
from sqlalchemy import create_engine
import math
import os
import glob
csv_list=glob.glob(r'D:\Python\03DataAcquisition\COVID-19\2020\*.csv')
print("所有数据文件总共有%s" %len(csv_list))
for i in csv_list:
    fr=open(i,"rb").read() #除了第一个数据文件外,其他不读取表头
    with open('../output/covid19temp0314.csv','ab') as f:
        f.write(fr)
    f.close()
print('数据合成完毕!')

合并后的数据:

二、使用函数进行数据合并

## 02 使用函数进行数据合并
import os
import pandas as pd 
# 定义函数(具有递归功能)
def mergeFile(parent,path="",pathdeep=0,filelist=[],csvdatadf=pd.DataFrame(),csvdata=pd.DataFrame()):
    fileAbsPath=os.path.join(parent,path)
    if os.path.isdir(fileAbsPath)==True:
        if(pathdeep!=0 and ('.ipynb_checkpoints' not in str(fileAbsPath))): # =0代表没有下一层目录
            print('--'+path)
        for filename2 in os.listdir(fileAbsPath):
            mergeFile(fileAbsPath,filename2,pathdeep=pathdeep+1)
    else:
        if(pathdeep==2 and path.endswith(".csv") and os.path.getsize(parent+'/'+path)>0):
            filelist.append(parent+'/'+path)
    return filelist

# D:\Python\03DataAcquisition\COVID-19
path=input("请输入数据文件所在目录:")
filelist=mergeFile(path)

filelist

csvdata=pd.DataFrame()
csvdatadf=pd.DataFrame()

for m in filelist:
    csvdata=pd.read_csv(m,encoding='utf-8-sig')
    csvdatadf=csvdatadf.append(csvdata)
# 由于2023年的数据还没有,所以不合并

(* ̄(oo) ̄)注: 这个的等待时间应该会比较长,因为一共有一百九十多万条数据。

将合并后的数据进行保存:

csvdatadf.to_csv("covid190314.csv",index=None,encoding='utf-8-sig')
csvdatadf=pd.read_csv("covid190314.csv",encoding='utf-8-sig')
csvdatadf.info()

读取新冠疫情在2020/0101之前的数据:

beforedf=pd.read_csv(r'D:\Python\03DataAcquisition\COVID-19\before20201111.csv',encoding='utf-8-sig')
beforedf.info()

将两组数据合并:

tempalldf=beforedf.append(csvdatadf)
tempalldf.head()

三、处理港澳台数据

如图所示:要将Country_Region从Hong Kong变成China。澳门和台湾也是如此:

查找有关台湾的数据:

beforedf.loc[beforedf['Country/Region']=='Taiwan']
beforedf.loc[beforedf['Country/Region'].str.contains('Taiwan')]
beforedf.loc[beforedf['Country/Region'].str.contains('Taiwan'),'Province/State']='Taiwan'
beforedf.loc[beforedf['Province/State']=='Taiwan','Country/Region']='China'
beforedf.loc[beforedf['Province/State']=='Taiwan']

香港的数据处理:

beforedf.loc[beforedf['Country/Region'].str.contains('Hong Kong'),'Province/State']='Hong Kong'
beforedf.loc[beforedf['Province/State']=='Hong Kong','Country/Region']='China'
afterdf.loc[afterdf['Country_Region'].str.contains('Hong Kong'),'Province_State']='Hong Kong'
afterdf.loc[afterdf['Province_State']=='Hong Kong','Country_Region']='China'

澳门的数据处理:

beforedf.loc[beforedf['Country/Region'].str.contains('Macau'),'Province/State']='Macau'
beforedf.loc[beforedf['Province/State']=='Macau','Country/Region']='China'
afterdf.loc[afterdf['Country_Region'].str.contains('Macau'),'Province_State']='Macau'
afterdf.loc[afterdf['Province_State']=='Macau','Country_Region']='China'

最终将整理好的数据进行保存:

beforedf.to_csv("beforedf0314.csv",index=None,encoding='utf-8-sig')
afterdf.to_csv("afterdf0314.csv",index=None,encoding='utf-8-sig')

到此这篇关于Python实现Excel文件的合并(以新冠疫情数据为例)的文章就介绍到这了,更多相关Python合并Excel内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用Python脚本分析浏览器的浏览记录

    使用Python脚本分析浏览器的浏览记录

    这篇文章主要为大家详细介绍了如何使用Python脚本分析一下男朋友谷歌浏览器的浏览记录,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下
    2025-03-03
  • 全面了解django的缓存机制及使用方法

    全面了解django的缓存机制及使用方法

    这篇文章主要介绍了全面了解django的缓存机制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • 基于sklearn实现Bagging算法(python)

    基于sklearn实现Bagging算法(python)

    这篇文章主要为大家详细介绍了基于sklearn实现Bagging算法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-07-07
  • Python实现Mysql数据统计及numpy统计函数

    Python实现Mysql数据统计及numpy统计函数

    这篇文章主要介绍了Python实现Mysql数据统计的实例代码,给大家介绍了Python数据分析numpy统计函数的相关知识,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-07-07
  • python退出循环的方法

    python退出循环的方法

    在本篇文章里小编给大家整理的是关于python如何退出循环的相关知识点内容,需要的朋友们可以参考下。
    2020-06-06
  • 使用Django实现商城验证码模块的方法

    使用Django实现商城验证码模块的方法

    本文主要涉及图形验证码的相关功能,主要包括,图形验证码获取、验证码文字存储、验证码生成等。需要的朋友们下面随着小编来一起学习学习吧
    2021-06-06
  • Python中使用Opencv开发停车位计数器功能

    Python中使用Opencv开发停车位计数器功能

    这篇文章主要介绍了Python中使用Opencv开发停车位计数器,本教程最好的一点就是我们将使用基本的图像处理技术来解决这个问题,没有使用机器学习、深度学习进行训练来识别,感兴趣的朋友跟随小编一起看看吧
    2022-04-04
  • 解决Python报错No module named Crypto问题

    解决Python报错No module named Crypto问题

    这篇文章主要介绍了解决Python报错No module named“Crypto”问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • Python 异步之如何获取当前和正在运行任务详解

    Python 异步之如何获取当前和正在运行任务详解

    这篇文章主要为大家介绍了Python 异步之如何获取当前和正在运行任务详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Python 代码中的 yield 关键字到底是什么

    Python 代码中的 yield 关键字到底是什么

    yield是Python中一个强大的工具,它可以帮助你以一种高效的方式处理大量数据,理解yield的工作原理对于掌握Python编程至关重要,这篇文章主要介绍了Python 代码中的 yield 到底是什么,需要的朋友可以参考下
    2024-07-07

最新评论