大数据技术技能分析大赛——第二章 数据的导入和导出

大数据技术技能分析大赛——第二章 数据的导入和导出

2.1导入数据

1、导入excel表格数据

Excel有两种格式,分别为xls和xlsx格式,两种都可以用python的Pandas模块的read_excel方法导入。read_excel方法返回的结果是DataFrame,DataFrame的一列对应着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# 导入pandas模块并将其缩写
df=pd.read_excel("C:/Users/kzk/Desktop/背景介绍.xlsx")#使用该方法导入数据
df

括号里为本地表格地址,可以通过查看属性进行获取,注意地址的分隔符时反斜杠

df1=pd.read_excel("C:/Users/kzk/Desktop/背景介绍.xlsx",index_col=0)
df1
#取消行索引
df2=pd.read_excel("C:/Users/kzk/Desktop/背景介绍.xlsx",nrows=5)
df2
#导入前五行
df3=pd.read_excel("C:/Users/kzk/Desktop/背景介绍.xlsx",header=None)
df3
#取消表格第一行为默认表头,以0123···为表头
df4=pd.read_excel("C:/Users/kzk/Desktop/背景介绍.xlsx",header=None,name=['A','B','C','D','E'])
df4
#取消表格第一行为默认表头,以ABCDE为表头
df5=pd.read_excel("",header=None,names={'A','B','C','D','E'},usecols=[1,3])
df5
#索引为1和3,也就是第二列和第四列

2、导入CSV格式数据

read_csv方法中的sep参数表示要导入的csv文件的分隔符,默认是半角逗号。encoding参数用来指定CSV文件的编码,常用的有utf-8h和gbk

import pandas as pd
df1=pd.read_csv("",sep=",",encoding="gbk")
df1
df2=pd.read_csv("",sep=",",encoding="gbk",nrows=3)
df2
#只导入前三行
df4=pd.read_csv("",sep=",",encoding="gbk",names=["ID","fruit","amount"])
df4

3、导入JSON数据

JSON数据是一种轻量级的数据交换格式,容易阅读,也容易被机器扫描,在互联网应用中很常见,有时候从后台系统中导出来的数据就是JSON格式

JSON文件实际上存储的是一个JSON对象或者一个JSON数组,JSON对象是由多个键值对组成的,类似python的字典,JSON数组由多个JSON对象组成,类似列表

import pandas as pd
json=pd.read_json("路径")
json

4、导入txt格式数据

使用read_table方法,参数和用法与read_csv类似

import pandas as pd
df1=pd.read_table("路径")
df1

5、导入(爬取)网络数据

在数据分析中,除了可以导入文件和数据库中的数据,还有一类非常重要的数据就是网络数据,网络中每天都会产生大量数据,这些数据具有实时性,种类丰富的特点,因此对于数据分析而言是十分重要的一类数据来源

关键技术:爬取网络表格类数据,pandsa库read_html()方法

read_html()方法用于导入带有table标签的网页表格数据,使用该方法前,首先要确定网页表格数据是否为table标签。右击网页中的表格查看元素

确定后才可以使用read_html的方法

常用参数说明如下

io:字符串,文件路径,也可以是URL连接,网址不接受https,可以尝试去掉s后爬取

header:指定列标题所在的行

index_col:指定列标题所在的行

index_col:指定行标题对应的列

【例】 爬取A股公司营业收入排行榜

中商情报网是专业的产业情报分享云平台,主要提供研究报告、行业分析、市场调研等数据。在本案例中,通过爬取中商情报网中A股公司营业收入排行榜表格获取相应的金融数据,数据网址为https://s.askci.com/stock/a/

import pandas as pd
url="https://s.askci.com/stock/a/"
df=pd.read_html(url)[0]#索引为0
print(df)
     0       1     2         3
0   排名    股票代码  企业简称  营业收入(亿元)
1    1  600028  中国石化  27408.84
2    2  601857  中国石油  26143.49
3    3  601668  中国建筑  18913.39
4    4  601318  中国平安  11804.44
5    5  601390  中国中铁  10704.17
6    6  601186  中国铁建  10200.10
7    7  601398  工商银行   9427.62
8    8  601628  中国人寿   8585.05
9    9  600941  中国移动   8482.58
10  10  601939  建设银行   8242.46

2.2输出数据

1、CSV格式数据输出

【例】导入sales.csv文件中的前10行数据,并将其导出为sales_new.csv文件

关键技术:pandas库中的to_csv方法

在该例中,首先通过pandas库的read_casv方法导入sales.csv文件的前十行数据,然后使用pandas库的to_csv方法将导出的数据输出为sales_new.csv文件

import pandas as pd
df=pd.read_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" 也可以是gbk

【例】对于上一小节中的问日,如销售文件格式为:sales.xlsx文件,如何处理

关键技术:DataFrame对象的to_excel方法

与上例相似,该例首先利用Pandas库的read_excel方法读入sales.xlsx文件,然后使用to_excel方法导出新文件

import pandas as pd
df=pd.read_excel("地址")
df1=df.head(10)
df1.to_excel('sales_new.xlsx',encoding="gbk")

2、xlsx格式数据输出

对于Pandas库中的to_excel()方法,有下列参数说明

sheet_name:字符串,默认值为"sheet1",指包含DataFrame数据的表的名称

np_rep:字符串,默认值为’'。指缺失数据的表示方式

columes:序列,可选参数,要编辑的列

header:布尔型或字符串列表,默认值为True。如果给定字符串列表,则表示它是列名称的别名

index:布尔型,默认值为True 行名(索引)

index_label:字符串型或序列,默认值为None。如果文件数据过多的使用多索引,则需使用序列

encoding:指定Excel文件的编码方式,默认值为None

3、导入到多个sheet页中

【例】将sale.xlsx文件中的前十行数据,导出到sales_new.xlsx文件中名为df1的sheet页中将后五行数据导出到名为df2的sheet页中

首先建立df1/df2sheet页,然后使用pd.ExcelWriter方法打开sales_new.xlsx文件,再用to_excel方法导入到指定的sheet页中

import pandas as pd
df=pd.read_excel("地址")
df1=df.head(10)
df2=df.tail(5)
work=pd.ExcelWriter('sales_new.xlsx')
df1.to_excel(work,sheet_name='df1')
df2.to_excel(work,sheet_name='dt2')
work.save

你可能感兴趣的:(python,大数据,pandas,python)