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

(0)

相关推荐

  • python 合并多个excel中同名的sheet

    大家好~ 老Amy来啦!已经n久没有给大家输出关于办公自动化的文章了-为什么呢?罗列原因: 太忙!(被领导"压榨") 太忙!(没有额外的精力揣测大家办公的需求) 太忙!(持续吃瓜中) 然鹅,一位朋友的困惑成为了我这种"麻木状态"的终结者,他提出需求如下: 想不断尝试的老Amy,开启了思考模式:"我要怎么实现这个需求呢?". 不用着急,首先我们来分析数据本身. 分析数据特征如下: 数据所在路径 C:\Users\logic\Desktop\myte

  • Python将多个excel文件合并为一个文件

    利用Python,将多个excel文件合并为一个文件 思路 利用python xlrd包读取excle文件,然后将文件内容存入一个列表中,再利用xlsxwriter将内容写入到一个新的excel文件中. 完整代码 # -*- coding: utf-8 -*- #将多个Excel文件合并成一个 import xlrd import xlsxwriter #打开一个excel文件 def open_xls(file): fh=xlrd.open_workbook(file) return fh #

  • Python 对Excel求和、合并居中的操作

    需求 原始表格: 想在Total列中对每日的Amount进行汇总,然后对Date和Total进行合并居中,效果如下: 思路 遍历Excel行,从第一个非空Date列开始,到下个非空Date列,对Amount列进行求和,结果赋给第一个非空Data列对应行的Total列. 代码 import os import openpyxl from openpyxl.styles import Border, Side, PatternFill, Font, GradientFill, Alignment d

  • 如何用python合并多个excel文件

    安装模块 1.找到对应的模块  http://www.python-excel.org/ 2.用 pip install 安装 pip3 install xlrd pip3 install XlsxWriter 因为使用的是 python3,所以安装的时候采用 pip3. XlsxWriter 示例 先看看简单的演示: import xlsxwriter # 创建一个工作簿并添加一个工作表 workbook = xlsxwriter.Workbook("c.xlsx") workshe

  • 教你用Python代码实现合并excel文件

    一.安装模块 1.找到对应的模块 http://www.python-excel.org/ 2.用 pip install 安装 pip3 install xlrd pip3 install XlsxWriter 因为使用的是 python3,所以安装的时候采用 pip3. 二.XlsxWriter 示例 先看看简单的演示: import xlsxwriter # 创建一个工作簿并添加一个工作表 workbook = xlsxwriter.Workbook("c.xlsx") work

  • python合并多个excel文件的示例

    工作中经常遇到要将十几个Excel(不管是xls.或者是CSV)合并到同一个文件中去,手工一个一个复制是不可能的,此时就轮到Python出马了 主要是利用for循环,读取每一个文件,作为df,然后再通过list的append加在一起,然后再通过pd.concat拼接起来,最后将文件读到CSV中去 import os import pandas as pd import numpy as np dir = "D:\\merge"#设置工作路径 #新建列表,存放文件名(可以忽略,但是为了做

  • 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

  • 用Python可视化新冠疫情数据

    目录 前言 数据获取 数据可视化 python的特色 总结 前言 不知道大伙有没有看到过这一句话:“中国(疫苗研发)非常困难,因为在中国我们没有办法做第三期临床试验,因为没有病人了.”这句话是中国工程院院士钟南山在上海科技大学2021届毕业典礼上提出的.这句话在全网流传,被广大网友称之为“凡尔赛”发言. 今天让我们用数据来看看这句话是不是“凡尔赛”本赛.在开始之前我们先来说说今天要用到的python库吧! 1.数据获取部分 requests lxml json openpyxl 2.数据可视化部

  • Python 详解通过Scrapy框架实现爬取百度新冠疫情数据流程

    目录 前言 环境部署 插件推荐 爬虫目标 项目创建 webdriver部署 项目代码 Item定义 中间件定义 定义爬虫 pipeline输出结果文本 配置文件改动 验证结果 总结 前言 闲来无聊,写了一个爬虫程序获取百度疫情数据.申明一下,研究而已.而且页面应该会进程做反爬处理,可能需要调整对应xpath. Github仓库地址:代码仓库 本文主要使用的是scrapy框架. 环境部署 主要简单推荐一下 插件推荐 这里先推荐一个Google Chrome的扩展插件xpath helper,可以验

  • Python批量操作Excel文件详解

    目录 批量操作 OS模块介绍 OS模块基本操作 获取当前工作路径 获取一个文件夹下的所有文件名 对文件名进行重命名 创建一个文件夹 删除一个文件夹 删除一个文件 利用OS模块进行批量操作 批量读取一个文件下的多个文件 批量创建文件夹 批量重命名文件 其他批量操作 批量合并多个文件 将一份文件按照指定列拆分成多个文件 批量操作 OS模块介绍 OS的全称是Operation System,指操作系统.在Python里面OS模块中主要提供了与操作系统即电脑系统之间进行交互的一些功能.我们很多的自动化操

  • python处理excel文件之xlsxwriter 模块

    目录 模块基本使用 写入更多样式数据 其余样式扩展 xlsxwriter 中的 write 方法 xlsxwriter 关闭文件 其它需要了解的方法 xlsxwriter 模块的优缺点 优点 缺点 模块安装: pip install xlsxwriter 安装完毕,直接在文件中进行模块导入,测试是够存在BUG. import xlsxwriter 该模块看名字就能知道其用法,它是用来向 Excel 中写入数据的模块,其中限制 Excel 版本为2007+. 模块基本使用 接下来完成一个基本的流程

  • python 读取excel文件生成sql文件实例详解

    python 读取excel文件生成sql文件实例详解 学了python这么久,总算是在工作中用到一次.这次是为了从excel文件中读取数据然后写入到数据库中.这个逻辑用java来写的话就太重了,所以这次考虑通过python脚本来实现. 在此之前需要给python添加一个xlrd模块,这个模块是专门用来操作excel文件的. 在mac中可以通过easy_install xlrd命令实现自动安装模块 import xdrlib ,sys import xlrd def open_excel(fil

  • 使用Python操作excel文件的实例代码

    使用的类库 pip install openpyxl 操作实现 •工作簿操作 # coding: utf-8 from openpyxl import Workbook # 创建一个excel工作簿 wb = Workbook() # 打开一个工作簿 wb = load_workbook('test.xlsx') # 保存工作簿到文件 wb.save('save.xlsx') •工作表操作 # 获得当前的工作表对象 ws = wb.active # 通过工作表名称得到工作表对象 ws = wb.

  • Python实现分割文件及合并文件的方法

    本文实例讲述了Python实现分割文件及合并文件的方法.分享给大家供大家参考.具体如下: 分割文件split.py如下: #!/usr/bin/python ########################################################################## # split a file into a set of parts; join.py puts them back together; # this is a customizable ve

  • python高手之路python处理excel文件(方法汇总)

    用python来自动生成excel数据文件.python处理excel文件主要是第三方模块库xlrd.xlwt.xluntils和pyExcelerator,除此之外,python处理excel还可以用win32com和openpyxl模块. 方法一: 小罗问我怎么从excel中读取数据,然后我百了一番,做下记录 excel数据图(小罗说数据要给客户保密,我随手写了几行数据): python读取excel文件代码: #!/usr/bin/env python # -*- coding: utf-

  • Python处理Excel文件实例代码

    因为工作需求,需要审核一部分query内容是否有效,query储存在Excel中,文本内容为页面的Title,而页面的URL以HyperLink的格式关联到每个Cell. 于是本能的想到用Python读取Excel文件之后进行文本分析,之后对每个链接进行一次HttpRequest,通过分析HttpResponse的内容来判断当前链接是否有效. 于是上网搜了下,发现比较主流的是用xlrd的插件,但是实际使用过程中发现,无论如何,最终获取的hyperlink_map值一直都是None,也没空去分析到

随机推荐