Pandas统计分析——导入外部数据

目录

前言

一、导入.xls或.xlsx文件

1.常规导入示例: 

2.通过行、例索引导入

3.常用方法

二、导入CSV文件 

1.导入.csv文件主要使用Pandas的read_csv()方法

三、导入.txt文本文件 

1. 使用 read_csv() 方法导入 1月的 .txt 文件示例:

四、导入HTML网页

1.使用 read_html() 方法导入 NBA 球员的薪资数据示例:


前言

pandas主要包括两个数据结构,即Series对象和DataFrame对象,本文主要分别介绍导入外部数据(.xls或.xlsx和.csv或.txt或html网页)。

一、导入.xls或.xlsx文件

常用Pandas的read_excel( )方法,语法如下:

pandas.read_excel(
    io,sheet_name=0,header0,names=None,index_col=None,usecols=None,squeeze=False,dtype=None,engine=None,converters=None,true_values=None,false_values=None,skiprows=None,nrow=None,na_values=None,keep_default_na=True,verbose=False,parse_dates=False,date_parser=None,thousands=None,comment=None,skipfooter=0,conver_float=True,mangle_dupe_cols=True, **kwds)

参数说明:

io:字符串,.xls或.xlsx文件路径或文件对象(数据的加载路径)

sheet_name:None、字符串、整数、字符串列表或整数列表,默认值为 0。字符串用于工作表名称,整数为索引表示工作表位置,字符串列表或整数列表用于请求多个工作表,为 None时获取所有工作表。参数值如下图所示

说明
sheet_name=0 第一个Sheet页中的数据作为DataFrame
sheet_name=1 第二个Sheet页中的数据作为DataFrame
sheet_name=''Sheet1'' 名为Sheet的Sheet页的数据作为DataFrame
sheet_name=[0,1,'Sheet3'] 第一个、第二个和名为Sheet的Sheet页中的数据作为DataFrame

header:指定作为列名的行,默认值为0,即取第一行的值为列名。数据为除列名以外的数据;若数据不包含列名,则改首 header-None。


names:默认值为 None,要使用的列名列表。


index_col:指定列为索引列,默认值为 None,索引0是 DataFrame 的行杯签。


usecols:int、list 列表或子符串,默认值为 None。


  >>如果为 None,则解析所有列。
  >>如果为int,则解析最后一列。
  >>如果为 list 列表,则解析列号列表的列。
  >>如果为字符串,则表示以逗号分隔的 Excel 列字母和列范围列表 (例如“A:E”或
“A,C,E:F”)。范围包括双方。


squeeze:布尔值,默认值为 False, 如果解析的数据只包含一列,则返回一个 Series。


dtype:列的数据类型名称或字典,默认值为 None。例如{a':np.float64,b'np.int32}。


skiprows:省略指定行数的数据,从第一行开始。


skipfooter: 省略指定行数的数据,从尾部数的行开始。 

1.常规导入示例: 

import pandas as pd
df = pd.read_excel('data.xlsx',encoding='utf-8')
print(df)

     姓名  年龄    工作    工资
0   张三  25    学生      200
1   李四  24    工人     3000
2   王五  22    NaN      5000
3   冯六  33  包工头   8000

 第一个参数是路径,既可以使用绝对路径又可以使用相对路径,如果文件名含有汉字,注意指定设置一下属性encoding = 'utf-8',另设置sheet_name指定具体的Sheet名字,也可传入sheet的顺序,从0开始。

2.通过行、例索引导入

DataFirarme 是二维数据结构,因此它既有行索引又有列素引。当导入 Excel 数据时,行索引会自动生成,而列素引则默认将第0行作为列素引

df = pd.read_excel('data.xlsx',encoding='utf-8',usecols=[0,2])

     姓名    工作
0   张三    学生
1   李四    工人
2   王五    NaN
3   冯六  包工头

3.常用方法

  • shape()可以获取excel文件的行和列,以元祖形式返回;

  • info()获取数据类型;

  • astype()  可转换列里面的数据类型,括号里是要转换的目标类型;如df[列2].astype('float64')df['列'].dtype可查看列的类型

  • isnull()判断哪个值是缺失值;

  • dropna()删除有缺失值的行,返回删除后的数据,传入参数how=all,要全为空值才会删除;

  • fillna()括号内可直接填入要要填充的值,也可指定列填充,以字典形式传参;

  • drop_duplicates()默认对所有重复值判断,默认保留keep=first第一个行值;通过keep修改,值可为last,保留最后一个,还可设置keepFalse,一个也不保留。另也可指定列名去重,如传入参数subset=['列名1,列名2'],注意是以列表形式传参;

  • head()传入的参数代表获取前几行;

  • describe()掌握数值的分布情况,如均值,最值,方差,分位数。

  • columnindex可设置列索引行索引,以列表形式传参;

  • set_index()重新设置索引列,传入要指名要用做行索引的名称;

  • reset_index(level = None,drop=False,inplace = False),level指定要将层次化索引的第几级别转化为columns,第一个索引为0级,第二个为1级,默认全部转化为columns。drop是否将原索引删掉,inplace是否修改原数据表;该方法常用于数据分组和数据透视表中。

  • rename()重命名索引,可重新设置columnsindex,以字典形式传参,key为原值,value为替换后的值。

二、导入CSV文件 

1.导入.csv文件主要使用Pandas的read_csv()方法

import pandas as pd
df = pd.read_csv('data.csv',encoding='gbk',)
print(df)

注意:

上述代码中指定了编码格式,即encoding-gbk'。Dython 常用的编码格式是UIF-8和gbk,默认编码格式为 UTF-8。导入.csv文件时,需要通过encoding 参数指定编码格式。当将Excel文件另存为.csv 文件时,默认编码格式为gbk,此时当编写代码导入.csv 文件时,就需要设置编码格式为gbk,与源文件编码格式保持一致;否则会提示错误。

三、导入.txt文本文件 

导入.txt 文件同样使用 Pandas的read_csv()方法,不同的是需要指定sep参数(如制表行\t)。read_ csv()方法读取.txt 文件返回一个 DataFrame,像表格一样的二维数据结构,如图所示。

Pandas统计分析——导入外部数据_第1张图片

1. 使用 read_csv() 方法导入 1月的 .txt 文件示例:

Pandas统计分析——导入外部数据_第2张图片

四、导入HTML网页

 导入 HTML 网页数据主要使用 Pandas 的read_html方法,该方法用于导入带有table 标签的网页
表格数据,语法如下:

pandas.read_html(
    io,match='.+',flavor=None,header=None,index_col=None,skiprows=None,attrs=None,parse_dates=False,thousands=',',encoding=None,decimal='.',converters=None,na_values=None,keep_default_na=True,displayed_only=True)

常用参数说明:
io: 字符串,文件路径,也可以是 URL 链接。网址不接受https,可以尝试去掉https 中的s
后爬取,如 http://www.mingribook.com。

match:正则表达式,返回与正则表达式匹配的表格。

flavor:解析器默认为 lxml。

header:指定列标题所在的行,列表 list 为多重索引。

index_col:指定行标题对应的列,列表 list 为多重索引。

encoding: 宇符串,默认为 None, 文件的编码格式。

返回值:返回一个 DataFrame。

使用read_htnl()方法前,首先要确定网页表格是否为 table 类型。例如,NBA 球员薪资网页
(http://www.espn.com/nba/salaries),右击该网页中的表格,在弹出的快捷菜单中选择“检查元素”
命令,查看代码中是否含有表格标签

...</table>的宇样,确定后才可以使用read_html()方法。 

1.使用 read_html() 方法导入 NBA 球员的薪资数据示例:

Pandas统计分析——导入外部数据_第3张图片

参考链接:

http://www.360doc.com/content/23/0109/08/73874201_1063030517.shtml

你可能感兴趣的:(pandas)