数据导入和导出(第二章)

目录

2.1 导入数据

2.1.1 导入Excel表格数据

2.1.2 导入CSV格式数据

2.1.3 导入JSON格式数据

2.1.4 导入txt格式数据

2.1.5 导入(爬取)网络数据

2.2输出数据

2.2.1 CSV格式数据输出

2.2.2 xlsx格式数据输出

2.2.3 导出到多个Sheet页中


本章的思维导图

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()

        运行代码后,打开文件可以看到结果如下:

  • 24
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值