脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - Python实现Excel文件的合并(以新冠疫情数据为例)

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

2022-11-10 10:20渴望成为寂寞胜者 Python

这篇将以新冠疫情数据为例,详细介绍了如何利用Python实现合并Excel文件,文中的示例代码讲解详细,感兴趣的可以了解一下

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

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

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

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

将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('数据合成完毕!')

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

合并后的数据:

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

 

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

## 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年的数据还没有,所以不合并

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

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

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

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

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

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

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

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

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

将两组数据合并:

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

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

 

三、处理港澳台数据

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

如图所示:要将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']

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

香港的数据处理:

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合并Excel内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/wxfighting/article/details/123590669

延伸 · 阅读

精彩推荐
  • PythonPython的Pandas时序数据详解

    Python的Pandas时序数据详解

    这篇文章主要为大家详细介绍了Pandas时序数据,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来...

    Viva Python11172022-10-28
  • Python通过python的matplotlib包将Tensorflow数据进行可视化的方法

    通过python的matplotlib包将Tensorflow数据进行可视化的方法

    今天小编就为大家分享一篇通过python的matplotlib包将Tensorflow数据进行可视化的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    随_我5602021-05-13
  • Python为什么说python适合写爬虫

    为什么说python适合写爬虫

    在本文中,小编给读者们整理的一篇关于分析为什么说python适合写爬虫的语言的相关内容,有兴趣的朋友们可以学习下。 ...

    silencement5492020-06-12
  • Pythonpython输入多行字符串的方法总结

    python输入多行字符串的方法总结

    在本篇文章里小编给大家分享的是关于python输入多行字符串的方法以及实例代码,需要的朋友们可以学习下。...

    HappyRocking8852021-07-28
  • PythonPython模拟登录微博并爬取表情包

    Python模拟登录微博并爬取表情包

    前段时间爬取的知乎表情包用完了吗?今天再带大家去微博爬一波表情包吧.文中有非常详细的代码示例,废话不多说,让我们愉快地开始吧,需要的朋友可以参...

    weixin_436496919922021-11-21
  • PythonPython使用lxml模块和Requests模块抓取HTML页面的教程

    Python使用lxml模块和Requests模块抓取HTML页面的教程

    用Pyhton自带的urllib或urllib2模块抓取网页或许有些陈词滥调了,今天我们就来玩儿些新鲜的,来看Python使用lxml模块和Requests模块抓取HTML页面的教程: ...

    Kenneth Reitz10742020-08-23
  • PythonPython+Turtle绘制可爱的多啦A梦的示例代码

    Python+Turtle绘制可爱的多啦A梦的示例代码

    这篇文章主要介绍了如何利用python中的Turtle模块绘制一个童年记忆的卡通人物哆啦A梦,文中的示例代码讲解详细,感兴趣的可以了解一下...

    是梦吧,是你吧!9582022-11-09
  • PythonPython3.4 tkinter,PIL图片转换

    Python3.4 tkinter,PIL图片转换

    我们给大家整理了关于Python3.4 tkinter,PIL图片转换的相关完整代码,大家可以学习测试下。...

    脚本之家10482021-03-07