数据分析--pandas的基本使用
Posted dalyday
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据分析--pandas的基本使用相关的知识,希望对你有一定的参考价值。
一、pandas概述
1.pandas是一个强大的Python数据分析的工具包,是基于NumPy构建的。
2.pandas的主要功能
- 具备对其功能的数据结构DataFrame、Series
- 集成时间序列功能
- 提供丰富的数学运算和操作
- 灵活处理缺失数据
3.python中操作方式:
- 安装方法:pip install pandas
- 引用方法:import pandas as pd
4.也可以通过安装anaconda软件操作,里面包含(numpy,pandas以及Matplotlib多个库),本片文章是在anaconda3中运行!!!
- anaconda下载地址请戳:https://www.anaconda.com/download/
- anaconda安装及创建项目教程:https://jingyan.baidu.com/article/3f16e0031e87522591c10320.html
二、pandas:Series(一维)
1.Series是一种类似于一位数组的对象,由一组数据和一组与之相关的数据标签(索引)组成。
2.创建方式:
3.从上面操作可以知道:
- 获取值数组和索引数组:values属性和index属性。
- Series比较像列表(数组)和字典的组合体。
三、pandas:Series特性
1.Series支持NumPy模块的特性(下标):
- 从ndarray创建Series:Series(arr)
- 与标量运算:sr*2
- 两个Series运算:sr1+sr2
- 索引:sr[0], sr[[1,2,4]]
- 切片:sr[0:2]
- 通用函数:np.abs(sr)
- 布尔值过滤:sr[sr>0]
- 统计函数:mean()sum()cumsum()
Numpy连接:https://www.cnblogs.com/dalyday/p/9295459.html
2.Series支持字典的特性(标签):
- 从字典创建Series:Series(dic),
- in运算:’a’ in sr、for i in sr
- 键索引:sr[‘a‘], sr[[‘a‘, ‘b‘, ‘d‘]]
- 键切片:sr[‘a‘:‘c‘]
- 其他函数:get(‘a‘,default = 0)等
标签示例:
四、pandas:整数索引
1.整数索引存在标签索引与下标索引,新手在这需注意下。
2.输入下面的列子会出什么结果:
- sr2[3]
- sr2[-1]
3.从上面可知索引是整数类型,则根据整数进行数据操作时总是面向标签的。
引入:
- --loc属性 以标签解释
- --iloc属性 以下标解释
五、pandas:Series数据对齐
1.pandas在运算时,会按索引进行对齐然后计算。如果存在不同的索引,则结果的索引是两个操作数索引的并集。
例:
sr1 = pd.Series([12,23,34], index=[‘c‘,‘a‘,‘d‘])
sr2 = pd.Series([11,20,10], index=[‘d‘,‘c‘,‘a‘,])
sr1+sr2
sr3 = pd.Series([11,20,10,14], index=[‘d‘,‘c‘,‘a‘,‘b‘])
sr1+sr3
图例展示:
2.如何在两个Series对象相加时将缺失值设为0?
sr1.add(sr3, fill_value=0)
灵活的算术方法:add, sub, div, mul
六、pandas:Series缺失数据
1.缺失数据:使用NaN(Not a Number)来表示缺失数据。其值等于np.nan。内置的None值也会被当做NaN处理。
2.处理缺失数据的相关方法:
- dropna() 过滤掉值为NaN的行
- fillna() 填充缺失数据
- isnull() 返回布尔数组,缺失值对应为True
- notnull() 返回布尔数组,缺失值对应为False
3.过滤缺失数据:sr.dropna() 或 sr[data.notnull()]
4.填充缺失数据:fillna(0)
七、pandas:DataFrame
1.概要描述:DataFrame是一个表格型的数据结构,含有一组有序的列;可以被看做是由Series组成的字典,并且共用一个索引。
2.创建方式:
pd.DataFrame({‘one‘:[1,2,3,4],‘two‘:[4,3,2,1]})
pd.DataFrame({‘one‘:pd.Series([1,2,3],index=[‘a‘,‘b‘,‘c‘]),‘two‘:pd.Series([1,2,3,4],index=[‘b‘,‘a‘,‘c‘,‘d‘])})
3.csv文件读取与写入:
- df.read_csv(‘filename.csv‘)
- df.to_csv()
八、pandas:DataFrame查看数据
查看数据常用属性及方法: index 获取索引 T 转置 columns 获取列索引 values 获取值数组 describe() 获取快速统
九、pandas:DataFrame索引和切片
1、DataFrame有行索引和列索引。
2、DataFrame同样可以通过标签和位置两种方法进行索引和切片。
3、DataFrame使用索引切片:
- 方法1.两个中括号,先取列再取行。 df[‘A‘][0]
- 方法2(推荐):使用loc/iloc属性,一个中括号,逗号隔开,先取行再取列。
loc属性:解释为标签
iloc属性:解释为下标
- 向DataFrame对象中写入值时只使用方法2
- 行/列索引部分可以是常规索引、切片、布尔值索引、花式索引任意搭配。(注意:两部分都是花式索引时结果可能与预料的不同)
通过标签获取: df[‘A‘] df[[‘A‘, ‘B‘]] df[‘A‘][0] df.loc[:,[‘A‘,‘B‘]] df.loc[:,‘A‘:‘C‘] df.loc[0,‘A‘] df.loc[0:10,[‘A‘,‘C‘]] 通过位置获取: df.iloc[3] df.iloc[3,3] df.iloc[0:3,4:6] df.iloc[1:5,:] 通过布尔值过滤: df[df[‘A‘]>0] df[df[‘A‘].isin([1,3,5])] df[df<0] = 0
十、pandas:DataFrame数据对齐与缺失数据
1.DataFrame对象在运算时,同样会进行数据对其,结果的行索引与列索引分别为两个操作数的行索引与列索引的并集
2.DataFrame处理缺失数据的方法:
- dropna(axis=0,where=‘any‘,…)
- fillna()
- isnull()
- notnull()
十一、pandas:其他常用方法
pandas常用方法(适用Series和DataFrame): mean(axis=0,skipna=False) #求平均值 sum(axis=1) #求和 sort_index(axis, …, ascending) #按行或列索引排序 sort_values(by, axis, ascending) #按值排序 NumPy的通用函数同样适用于pandas apply(func, axis=0) #将自定义函数应用在各行或者各列上 ,func可返回标量或者Series applymap(func) #将函数应用在DataFrame各个元素上 map(func) #将函数应用在Series各个元素上
十二、pandas:其他常用方法
时间类型: 时间戳:特定时刻 固定时期:如2017年7月 时间间隔:起始时间-结束时间 Python标准库:datetime datetime.datetime.timedelta # 表示 时间间隔 dt.strftime() #f:format吧时间对象格式化成字符串 strptime() #把字符串解析成时间对象p:parse 灵活处理时间对象:dateutil包 dateutil.parser.parse(‘2018/1/29‘) 成组处理时间对象:pandas pd.to_datetime([‘2001-01-01‘, ‘2002-02-02‘]) 产生时间对象数组:date_range start 开始时间 end 结束时间 periods 时间长度 freq 时间频率,默认为‘D‘,可选H(our),W(eek),B(usiness),S(emi-)M(onth),(min)T(es), S(econd), A(year),…
十三、pandas:从文件读取
1.读取文件:从文件名、URL、文件对象中加载数据
- read_csv 默认分隔符为csv
- read_table 默认分隔符为
- read_excel 读取Excel文件
2.读取文件函数主要参数:
- sep 指定分隔符,可用正则表达式如‘s+‘
- header=None 指定文件无列名
- name 指定列名 index_col 指定某列作为索引
- skip_row 指定跳过某些行
- na_values 指定某些字符串表示缺失值
- parse_dates 指定某些列是否被解析为日期,布尔值或列表
- nrows 指定读取几行文件 chunksize 分块读取文件,指定块大小
十四、pandas:写入到文件
1.写入到文件:
- to_csv
2.写入文件函数的主要参数:
- sep
- na_rep 指定缺失值转换的字符串,默认为空字符串
- header=False 不输出列名一行
- index=False 不输出行索引一列
- cols 指定输出的列,传入列表
3.其他文件类型:json, XML, html, 数据库
4.pandas转换为二进制文件格式(pickle):
- save
- load
以上是关于数据分析--pandas的基本使用的主要内容,如果未能解决你的问题,请参考以下文章