Python导入数据与输出数据
目录
一、导入数据
1、导入Excel表格数据
read excel方法中的参数介绍如下
(1)sheet name参数: 该参数用于指定导入Excel文件中的哪一个sheet,如果不填写这个参数,则默认导入第一个sheet
(2) index col参数: 该参数用于指定表格的哪一列作为DataFrame的行索引从0开始计数
(3)nrows参数: 该参数可以控制导入的行数,该参数在导入文件体积较大时比较有用
(4)skipfooter参数: 该参数可以在导入数据时,跳过表格底部的若干行
(5) header参数:当使用Pandas的read excel方法导入Excel文件时,默认表格的第一行为字段名。如果表格的第一段不是字段名,则需要使用该参数设置字段名
(6)usecols参数:该参数可以控制导入Excel表格中的哪些列
(7)names参数:该参数可以对导入数据的列名进行重命名
import pandas as pd
df=pd.read_excel("文件路径",index_col=0,nrows=5,header=None,
name=["a","b","c","d","e"],usecols=[1,3])
#index_col=0是将第一列作为索引;nrows=5是导入前五行
#header=None是取消第一行作表头;name是命名表头
#usecols=[1,3]是导入第二列和第四列
2.导入CSV格式数据
read_csv方法中的sep参数表示要导入的csv文件的分隔符,默认值是半角逗号。encoding参数用来指定CSV文件的编码,常用的有utf-8和 gbk。
import pandas as pd
df=pd.read_csv("文件路径",sep=",",encoding="gbk",nrows=5,usecols=[1,3],
names=["名字","战队","位置"])
3.导入JSON格式数据
import pandas as pd
df=pd.read_json("文件路径")
4.导入txt格式数据
参数和用法与read_csv类似
import pandas as pd
df=pd.read_table("文件路径")
5.导入(爬取)网络数据
在Python的数据分析中,除了可以导入文件和数据库中的数据,还有一类非常重要的数据就是网络数据。网络中每天都会产生大量数据,这些数据具有实时性、种类丰富的特点,因此对于数据分析而言是十分重要的一类数据来源。关键技术:爬取网络表格类数据,pandas库read html0方法
read_html方法用于导入带有table标签的网页表格数据。使用该方法前,首先要确定网页表格是否为table标签。具体方法为,鼠标右键单击网页中的表格,在弹出的菜单中选择“查看元素”,查看代码中是否含有表格标签<table>...</table>的字样,确定后才可以使用read html方法。read html方法常用参数说明如下
io: 字符串,文件路径,也可以是URL链接。网址不接受https,可以尝试去掉https中的s后爬取
header:指定列标题所在的行
index col:指定行标题对应的列
返回值:返回一个DataFrame对象
[例]爬取A股公司营业收入排行榜中商情报网是专业的产业情报分享云平台,主要提供研究报告、行业分析、市场调研等数据。在本案例中,通过爬取中商情报网中A股公司营业收入排行榜表格获取相应的金融数据,数据网址为https://s.askci.com/stock/a/。
import pandas as pd
#爬取的网络地址url
url="https://s.askci.com/stock/a/"
#A股公司营业收入排行榜位于所有表格中的第一个,索引为0
df=pd.read_html(url)[0]
print(df)
二、导出数据
1.csv格式数据输出
[例]导入sales.csv文件中的前10行数据,并将其导出为sales new.csv文件
import pandas as pd
df=pd.read_csv("sales.csv",sep=",",encoding="gbk",nrows=10)
df.to_csv('sales_new.csv',encoding="gbk")
对于pandas库的to csv方法,有下列参数说明
path_or_buf:要保存的路径及文件名
sep:分割符,默认为'','
columns:指定要输出的列,用列名,列表表示,默认值为None
header: 是否输出列名,默认值为True
index: 是否输出索引,默认值为True
encoding:编码方式,默认值为“utf-8”
2.xlsx格式数据输出
[例]对于上一个问题,如文件格式为sales.xlsx文件,这种情况下该何处理?
import pandas as pd
df=pd.read_excel("sales.xlsx")
df1=df.head(10)
df1.to_xlsx('sales_new.xlsx',encoding="gbk")
对于Pandas库中的to excel0方法,有下列参数说明
sheet name:字符串,默认值为“Sheet1”,指包含DataFrame数据的表的名称
np_rep:字符串,默认值为' '。指缺失数据的表示方式
columes:序列,可选参数,要编辑的列
header: 布尔型或字符串列表,默认值为True。如果给定字符串列表,则表示它是列名称的别名
index:布尔型,默认值为True,行名 (索引)
index label: 字符串或序列,默认值为None。如果文件数据使用多索引,则需使用序列
encoding:指定Excel文件的编码方式,默认值为None
3.导入到多个sheet页中
[例]将sales.xlsx文件中的前十行数据,导出到sales_new.xlsx文件中名为df1的sheet页中,将sales.xlsx文件中的后五行数据导出到sales_new.xlsx文件中名为df2sheet页中
关键技术:Pandas库中的ExcelWriter方法
解决该问题,首先在sales_new.xlsx文件中建立名为df1和df2的sheet页,然后使用pd.ExcelWriter方法打开sales_new.xlsx文件,再使用to_excel方法将数据导入到指定的sheet页中
import pandas as pd
#读入sales.xlsx文件的前十行
df=pd.read_excel("sales.xIsx")
dfl=df.head(10)
#读入sales.xlsx文件的后五行
df2=df.tai1(5)
#打开sales new.xIsx文件
work=pd.ExcelWriter('sales_new.xIsx')
#将df1导出到sales new.xIsx文件的df1_sheet页中
dfl.to_excel(work,sheet_name='df1')
df2.to_excel(work,sheet_name='df2')
work.save()