其他
利用Python对两个EXCEL数据进行筛选
现有多个EXCEL表格,存储有世界各个国家的经济社会相关数据,我想要挑选出一带一路有关国家的数据,那么该怎么做呢?
首先观察每个EXCEL数据有啥特点?每个EXCEL表中都有一个相同的字段:Country Name,就可以根据这个字段进行筛选了。
我将一带一路国家做成一个EXCEL表,表头为:国家,Country Name,这样就可以利用这个一带一路国家名称表对上面的数据进行筛选了。
想要利用国家名称EXCEL表筛选上面一堆表格。如果用EXCEL挨个儿找国家,实在是太麻烦了,这个时候就要体现Python的优越性了。可以使用Python语句批量进行。下面是手动一个个表格筛选方法:
import pandas as pd
CountryName = pd.read_excel('Countries.xlsx', sheet_name = 0, header=0)
GDP_PPP = pd.read_excel('GDP_PPP.xlsx', sheet_name=0, header=0)
GDP_PPP2 = pd.merge(GDP_PPP, CountryName, how='inner', on=["Country Name"])
GDP_PPP2.to_excel('GDP_PPP2.xlsx', index=False)
感觉上面的方法还是有些麻烦,要想把所有的数据筛选了,还得一个个改输入的数据名称,如何批量筛选呢?请看下面:
import pandas as pd
import os
CountryName = pd.read_excel(r'E:\Python\Countries.xlsx', sheet_name = 0, header=0) #读取一带一路国家名称EXCEL
path=r'E:\Python\WorldData' #指定世界经济数据目录
filenames = os.listdir(path) #遍历目录下的文件
for filename in filenames:
path1=os.path.join(path, filename) #生成文件路径
WorldData = pd.read_excel(path1, sheet_name=0, header=0) #批量读取世界经济EXCEL
WorldData2 = pd.merge(CountryName, WorldData, how='inner', on=["Country Name"]) #利用Country Name字段进行筛选
WorldData2.to_excel(path1, index=False) #将筛选后的数据写入EXCEL
print(path1)