目录
本章的思维导图
2.1 导入数据
2.1.1 导入Excel表格数据
read_excel方法中参数的介绍如下:
sheet_name参数:用于指定导入Excel文件中的哪一个sheet,如果不填写这个参数,则默认导入第一个sheet。
index_col参数:用于指定表格的哪一列作为DataFrame的行索引,从0开始计数。
nrows参数:用于控制导入的行数。
skipfooter参数:在导入数据时,跳过表格底部的若干行。
header参数:导入Excel文件时,默认表格的第一行为字段名。如果表格的第一段不是字段名,则需要使用该参数设置字段名。
usecols参数:控制导入Excel表格中的哪些列。
names参数:对导入数据的列名进行重命名。
结合以上参数,下面介绍导入Excel数据的代码示例。首相导入名为北京市空气质量数据的Excel文件,并显示DataFrame数据。
import pandas as pd
data=pd.read_excel("K:\PycharmProjects\Data\北京市空气质量数据.xlsx")
data
若使用index_col参数指定excel文件中的第一列为行索引,输出如下:
# 使用第一列为行索引
data1=pd.read_excel("K:\PycharmProjects\Data\北京市空气质量数据.xlsx",index_col=0)
data1
若只导入前5行,则需要设置nrows参数,具体为:
# 只导入前5行
data2=pd.read_excel("K:\PycharmProjects\Data\北京市空气质量数据.xlsx",nrows=5)
data2
若表格的第一行不是我们想要的字段名,则可以设置header参数为None。
# 设置haader=None
data3=pd.read_excel("K:\PycharmProjects\Data\北京市空气质量数据.xlsx",nrows=5,header=None)
data3
对数据的列名改为常规的列名,对name参数进行设置,操作如下:
# 重新设置列名
data4=pd.read_excel("K:\PycharmProjects\Data\北京市空气质量数据.xlsx",nrows=5,header=None,name=['A','B','C','D','E','F','G','H','I'])
data4
设置导入excel文件中的某些列,对usecols参数进行设置。
# 设置导入的列
data5=pd.read_excel("K:\PycharmProjects\Data\北京市空气质量数据.xlsx",nrows=5,header=None,name=['A','B','C','D','E','F','G','H','I'],usecols=[0,1,2])
data5
2.1.2 导入CSV格式数据
CSV是一种分隔符分割的文件格式。由于Excel文件存放巨量数据时会占用极大空间,且导入时也存在占用极大内存缺点,因此,巨量数据采用CSV格式。
read_csv方法参数非常多,这里只对常用的参数介绍。
sep参数:表示要导入的csv文件的分隔符,默认值是半角逗号。encoding参数用来指定CSV文件的编码,常用的有utf-8和gbk。
import pandas as pd
df1=pd.read_csv("K:\PycharmProjects\Data\北京市空气质量数据.csv",sep=",",encoding="utf-8")
df1
与read_excel方法类似,在read_csv方法中,也可以通过设置nrows控制文件导入的行数;通过设置usecols参数,可以选择导入的列;通过names参数设置表头等。
2.1.3 导入JSON格式数据
JSON是一种轻量级的数据交换格式。JSON文件实际存储的是一个JSON对象或者一个JSON数组。JSON对象是由多个键值对组成的,类似于Python的字典;JSON数组由多个对象组成,类似于Python列表。
import pandas as pd
json=pd.read_json("K:\PycharmProjects\Data\北京市空气质量数据.json")
json
2.1.4 导入txt格式数据
read_table方法的参数和用法与read_csv方法类似。在导入txt文件时,如果字段之间不是用空格隔开,而是用逗号隔开,则需要设置sep参数。
2.1.5 导入(爬取)网络数据
中商情报网是专业的产业情报分享云平台,主要提供研究报告、行业分析、市场调研等数据。在本案例中,通过爬取中商情报网中A股公司营业收入排行榜表格获取相应的金融数据,数据网址为https://s.askci.com/stock/a/。
在浏览器中打开网址,部分显示内容如下所示。
import pandas as pd
url="https://s.askci.com/stock/a/"
df=pd.read_html(url)[0]
print(df)
关键技术:爬取网络表格类数据,pandas库read_html()方法。read_html方法用于导入带有table标签的网页表格数据。使用该方法前,首先要确定网页表格是否为table标签。
2.2输出数据
2.2.1 CSV格式数据输出
pandas库的to_csv方法,有下列参数说明:
path_or_buf:要保存的路径以及文件名。
sep:分隔符,默认为“,”。
columns:指定要输出的列,用列名,列表表示,默认值为None。
header:是否输出列名,默认值为True。
index:是否输出索引,默认值为True。
encoding:编码方式,默认值为“utf-8”。
import pandas as pd
data6=pd.read_excel("K:\PycharmProjects\Data\北京市空气质量数据.xlsx",nrows=5)
data6.to_csv('K:\PycharmProjects\Data\北京市空气质量数据.json',index=False) # 存取前5行数据
data6 # 读取保存的数据
2.2.2 xlsx格式数据输出
pandas库的to_excel方法,有下列参数说明:
sheet_name:默认值为sheet1。
np_sep:字符串,默认为“ ”。
columns:序列,可选参数,要编辑的列。
header:布尔型或字符串列表,默认值为True。
index:布尔型,默认值为True,行名。
index_table:字符串或序列,默认值为None。
encoding:编码方式,默认值为None。
import pandas as pd
url="https://s.askci.com/stock/a/"
df=pd.read_html(url)[0]
print(df)
# 将数据导出为sales_new.xlsx文件
df.to_excel('sales_new.xlsx',encoding='gbk')
执行代码输出的sales_new.xlsx文件如下所示:
2.2.3 导出到多个Sheet页中
# 将北京市空气质量数据.xlsx文件中的前二十行数据,导出到quilty_new.xlsx文件中名为quilty1的sheet页中,
# 将北京市空气质量数据.xlsx文件中的后二十五行数据,导出到quilty_new.xlsx文件中名为quilty2的sheet页中,
import pandas as pd
# 读入文件的前十行
quilty=pd.read_excel("K:\PycharmProjects\Data\北京市空气质量数据.xlsx")
quilty1=quilty.head(20)
# 读取文件的后五行
quilty2=quilty.tail(25)
# 打开quilty_new.xlsx文件
work=pd.ExcelWriter('K:\PycharmProjects\Data\quilty_new.xlsx')
# 导入数据
quilty1.to_excel(work,sheet_name='quilty1')
quilty2.to_excel(work,sheet_name='quilty2')
work.save()
运行代码后,打开文件可以看到结果如下: