//2019.07.17

pyhton中pandas数据分析基础入门(一文看懂pandas),

教你迅速入门pandas数据分析模块(后面附有入门完整代码,可以直接拷贝运行,含有详细的代码注释,可以轻松帮助你入门理解)

1.1 pandas模块简介

首先,使用pandas相应的操作之前都需要导入pandas模块

import pandas as pd

import numpy as np #导入pandas和numpy模块

1、pandas中具有两种常见的数据结构:

(1)Series

它是指一维列表或者数组(列向量),和numpy中的array比较类似,可以储存很多不同类型的数据类型;

(2)DataFrame

二维型的数据结构,和Excel表格比较类似,它可以理解为是Series的容器。

1.2 pandas里面的series类型应用:

1、对于series的定义:

s=pd.Series([1,2,3,np.nan,2,3,1,...],index=["a","b","c","d","e"...])

其中对于index是对于每一行数字属性的规定

2、对于series的索引index,其实质是指列表的行标签,可以serie.index来进行查询和输出;

1.3 DataFrame二维列表的相关操作大全

(一)构造DataFrame二维列表的方式

1、对于DataFrame的二维列表数据的出入主要有两种方式:传入二维数组和使用字典的定义方法;

方式一:df=pd.DataFrame(np.random.randn(6,4)) #二维数组的传入方法

方式二:df=pd.DataFrame({"A":[1,2,3,4,5],"B":["1,1,2,1,1"],"C":list("abcde"),"D":["yanjiangyi"]*5}) #字典的传入方式

2、对于二维列表各行各列的属性名称定义主要采用的是index(各行名称)和columns(各列名称):

df=pd.DataFrame(np.random.randn(6,4),index=pd.date_range("20180701",periods=6,freq="M"),columns=[list("abcd")])

3、关于DateFrame的字典数据传入方式,其中字典的key指的是列表的列名称,即columns的取值,另外对于每一列的取值主要有以下六种方式,都可以传入数组:

df=pd.DataFrame({"A":1.0,"B":np.array([3]*4,dtype=int),"C":pd.Timestamp("20190701"),"D":pd.Series([1.21,2.21,3.24,4.26],dtype=float),"E":pd.Categorical(["a","b","c","d"]),"F":"abc"})

(二)DataFrame二维数组的数据的查询

1、头尾数据查询:采用函数.head(x)和.tail(x)可以查询前后x行的数据;

2、查看表格数据的每一列数据类型可以采用df.dtypes来进行查看数据类型;

1.4pandas读取数据及其数据操作

1、pandas读取表格数据的方式是采用自带的函数pd.read_excle(表格的路径)和pd.read_csv(表格的路径)

例如:

df=pd.read_excel("D:/Byrbt2018/Study/Python数据分析课程+练习+讲解/Python数据分析课程+练习+讲解/作业/作业3/作业3/香港酒店数据.xlsx") #表格的读取操作主要依靠的是pd.read_excel/csv函数+文件路径

2、提取表格中的某几行某几列数据的方式:

(1)采用属性名称的方式:

df.loc[行属性A:行属性B,列属性:列属性]

(2)采用表格下标的方式:

df.iloc[行序号:行序号,列序号:列序号]

(3)直接采用数组的方式:

df[[列属性1,列属性2,列属性3...]][行号:行号]

(4)采用标准格式:

df.loc[[index,,...],[columns,,...]] #先行后列

3、表格行的增加和删减

(1)增加一行:

先用字典定义好这一行的新的数据(字典的key是表格的各列属性),然后将其转换为series一维列表,之后采用表格的增添函数df.append(s)来进行添加这一行的数据,另外还可以用s.name来定义新添加行的行属性名称

s={0:"天水宾馆",1:"休闲娱乐",2:"天水",3:"甘谷县",4:"中关村街道",5:4.5,6:11000,7:345} #先定义一行数据,利用字典的操作来进行定义新的一行

s1=pd.Series(s) #转换字典为一维列表

s1.name=420 #定义列表的行属性

(2)删减其中一行:

直接调用pandas模块的删减函数df.drop([行号])函数来进行删减相应需要删减的某一行数据。

4、列的相关操作

(1)列的增加:

列的增加通过直接增加定义就可以:

df["序号"]=range(1,len(df)+1) #增加了序号这一个新的列

(2)列的删减:

列的删减可以通过df.drop["列属性名称",axis=1]来进行操作,其中axis=1必须要设置,他表示删除的是列而不是行,如果不写axis或者设置axis=0,表示的是要进行删减的行:

df.drop["列属性名称",axis=1]

5、有关数据条件选择的操作:

关于数据条件性选择主要可以采用df[(选择条件)]来继续操作,举例如下:

print(df[df.评分>4.5]) #选择评分高于4.5的数据列表

print(df[(df.评分>4.5 )& (df.类型=="浪漫情侣")]) #选择评分高于4.5并且类型属于浪漫情侣的数据列表

print(df[((df.类型=="香港")|(df.日常人数>1000))&(df.评分>4.5)])

#选择类型时香港或者日常人数超过1000人的,并且评分高于4.5的数据列表

6、对于数据缺失值和异常值的处理操作:

(1)缺失值的处理主要包含以下四个操作:

isnull(返回一个布尔型的数据类型,判断是否为缺失值)

notnull(和isnull正好相反,判断不是缺失值)

fillna(对于缺失值进行填充)

dropna(对于缺失值进行相应的删减过滤)

(2)缺失值的处理规则:

#数据缺失值及其异常值的处理

对于缺失值的删减dropna()主要有三个参数:how=all(删掉所有 行和列),inplace=Ture(实时对于删减的表格进行更新),axis=0或者1(删减处理的是行或列)

print(df.isnull())

print(df[df["评分"].isnull()]) #缺失值的判断和输出

#对于缺失值的填充

print(df[df["评价人数"].isnull()]) #首先判断是否有残缺值

df["评价人数"].fillna(np.mean(df["评价人数"]),inplace=True) #缺失值的填充和实时更新inplace=1

print(df)

print(len(df[df["评价人数"].isnull()]))

print(len(df))

print(len(df.dropna()))

df.dropna(inplace=True)

print(len(df))

#异常值的处理

异常值一般主要是判断表格里面的数据是否和列属性的性质不符(比如对于人数属性的列数据存在一小数点负数的情况),然后结合判断的情况进行数据的处理和更新

print(len(df[df["日常人数"]%1!=0])) #对于异常值的判断和处理

df=df[(df["日常人数"]%1==0)&(df["日常人数"]>0)] #根据异常值的条件进行实时更新

print(df)

整体的入门运行代码如下所示(可以直接拷贝运行,含有详细的代码注释,可以轻松帮助你入门理解):

import pandas as pd

import numpy as np #导入pandas和numpy模块

# Series一维列表操作

s=pd.Series([1,2,3,4,np.nan,2,3,4,6,7])

print(s)

print(s.index) #输出series的行标签(属性)

print(s.values) #输出series的取值

print(s[2:9:2]) #隔行输出相应的值(切片操作)

s.index.name="属性" #定义列表series的属性名称

print(s)

s.index=list("abcdefghij") #重新定义表格每一行的属性名字

print(s)

print(s["a":"h":2]) #提取其中一部分,进行相关的的切片操作

# Dataframe二维列表操作大全

date=pd.date_range("20180101",periods=6,freq="D") #生成时间序列

print(date)

df=pd.DataFrame(np.random.randn(6,4),index=date,columns=list("abcd")) #定义随机数的二维列表6x4,然后定义各行各列的名称(index和columns)

df.index.name="date"

print(df)

df1=pd.DataFrame({"A":1.0,"B":np.array([3]*4,dtype=int),"C":pd.Timestamp("20190701"),"D":pd.Series([1.21,2.21,3.24,4.26],dtype=float),"E":pd.Categorical(["a","b","c","d"]),"F":"abc"})

print(df1)

print(df1.values) #查看数据的值

print(df1.index) #查看数据的行属性名称

print(df1.head(3)) #c查看数据的前三行

print(df1.tail(3)) #查看数据的后三行

print(df1.dtypes) #查看表格数据的每一类数据类型

#数据表格的读取与各种操作

df=pd.read_excel("D:/Byrbt2018/Study/Python数据分析课程+练习+讲解/Python数据分析课程+练习+讲解/作业/作业3/作业3/香港酒店数据.xlsx") #表格的读取操作主要依靠的是pd.read_excel/csv函数+文件路径

print(df)

#表格的行操作

print(df.iloc[0]) #采用下标的形式来进行数据的查询df.iloc[:,;]

print(df.iloc[:5]) #采用下标的形式来进行数据的查询df.iloc[:,;]

print(df.loc[0:5,0:3]) #采用行和列属性的形式来进行数据的查询df.iloc[:,;]

#增加一行操作

s={0:"天水宾馆",1:"休闲娱乐",2:"天水",3:"甘谷县",4:"中关村街道",5:4.5,6:11000,7:345} #先定义一行数据,利用字典的操作来进行定义新的一行

s1=pd.Series(s) #转换字典为一维列表

s1.name=420 #定义列表的行属性

print(s1)

df=df.append(s1) #增加一行数据操作(需要重新定义列表)

print(df)

print(df[-5:])

df=df.drop([420]) #删除某一行数据操作(需要重新定义列表)

print(df)

df.columns=["名称","类型","城市","地区","街道","评分","评价人数","日常人数"] #改变表格的各列名称

print(df)

print(type(df.index))

print(df.columns)

print(df["名称"])

#提取某几行某几列数据的三种方法(df.loc[;,;,iloc[;,;],df[[,,][:])

print(df[["名称","类型"]][:5]) #提取某几列某几行

print(df.iloc[0:5,0:3]) #提取某行某列(行在前,列在后)

print(df.loc[1:40,"类型":"评分"])

print(df[["名称","评分","城市"]][0:400:20]) #列在前,行在后

#列的相关操作

df["序号"]=range(1,len(df)+1) #增加列的操作

print(df[:5])

df=df.drop("序号",axis=1) #删减列时采用.drop函数,此时drop(x,axis=1)x表示列的名称,axis=1表示删除的是列,不写axis表示它为0,删除的默认是行

print(df)

print(df.loc[[1,2,3,5,10],["类型","评分"]]) #标准形式提取表格中的数据

#条件选择的数据操作

print(df[df.评分>4.5])

print(df[(df.评分>4.5 )& (df.类型=="浪漫情侣")])

print(df[((df.类型=="香港")|(df.日常人数>1000))&(df.评分>4.5)])

#数据缺失值及其异常值的处理

print(df.isnull())

print(df[df["评分"].isnull()]) #缺失值的判断和输出

#对于缺失值的填充

print(df[df["评价人数"].isnull()]) #首先判断是否有残缺值

df["评价人数"].fillna(np.mean(df["评价人数"]),inplace=True) #缺失值的填充和实时更新inplace=1

print(df)

print(len(df[df["评价人数"].isnull()]))

print(len(df))

print(len(df.dropna()))

df.dropna(inplace=True)

print(len(df))

print(len(df[df["日常人数"]%1!=0])) #对于异常值的判断和处理

df=df[(df["日常人数"]%1==0)&(df["日常人数"]>0)] #根据异常值的条件进行实时更新

print(df)

pythonpandas入门_pyhton pandas数据分析基础入门(一文看懂pandas)相关推荐

  1. ​【Python基础】一文看懂 Pandas 中的透视表

    作者:来源于读者投稿 出品:Python数据之道 一文看懂 Pandas 中的透视表 透视表在一种功能很强大的图表,用户可以从中读取到很多的信息.利用excel可以生成简单的透视表.本文中讲解的是如何 ...

  2. AI基础:一文看懂BERT

    0.导语 自google在2018年10月底公布BERT在11项nlp任务中的卓越表现后,BERT(Bidirectional Encoder Representation from Transfor ...

  3. 前端必读 0基础学习 一文看懂 Vue3 对比 Vue2 发生哪些变化

    望本篇文章能帮你加深对 Vue 的理解,能信誓旦旦地说自己熟练Vue2/3. 内容混杂用法 + 原理 + 使用小心得,建议收藏,慢慢看. 区别 生命周期的变化 整体来看,变化不大,只是名字大部分需要 ...

  4. 用python玩转办公软件(pandas数据分析)入门

    用python玩转办公软件(pandas数据分析)入门 文章目录 用python玩转办公软件(pandas数据分析)入门 1.pandas介绍 2.csv文件介绍 3.pandas常用操作csv (1 ...

  5. 码书:入门中文NLP必备干货:5分钟看懂“结巴”分词(Jieba)

    导读:近年来,随着NLP技术的日益成熟,开源实现的分词工具越来越多,如Ansj.盘古分词等.在本文中,我们选取了Jieba进行介绍和案例展示,主要基于以下考虑: 社区活跃.截止本文发布前,Jieba在 ...

  6. BI/数据仓库/数据分析 基础入门:一些常见概念解释

    2019独角兽企业重金招聘Python工程师标准>>> Preface:本文将会讲述 BI/DW/DA 领域的一些常见概念,如:事实表.维度表.建模.多维分析.cube 等,但不涉及 ...

  7. 2023年最新最全uniCloud入门学习,零基础入门到实战项目 uni-admin打造uniapp网页后端 微信支付宝抖音小程序后端 unicloud数据后台快速打造uniapp小程序项目

    今天开始带着大家一起零基础学习uniCloud,在下面的课程中我们就简称uniCloud为cloud吧.我这里从零基础开始教大家,后面可以带大家简单的做一个实战项目.所以不用担心自己没有基础,跟着石头 ...

  8. 【Go语言入门指南】零基础入门 go 语言 | Golang 入门指南

    文章目录 写在前面 全部练习项目都在github这个仓库中`https://github.com/CocaineCong/Golang-Learning` 1. [第一轮]基础部分 1.1 教程 1. ...

  9. SEO新手入门,SEO零基础入门教程,新手做SEO怎么做

    seo的作用是对网站进行seo优化,可以给网站带来大量的搜索引擎流量.但是想要做好网站优化也有难度,尤其是对于seo新手来说,因为缺乏理论和实战,所以seo新手需要多加练习.那么具体seo新手入门应该 ...

  10. Pandas数据分析基础

    一)安装Pandas库 使用之前确保已经安装了Pandas库,Pycharm有非常简单的操作,将下面代码粘贴到Pycharm的第一行,然后安ALT+回车,install即可. import panda ...

最新文章

  1. 米的建站日记(2014年12月18日)
  2. angr学习笔记(11)(SimProcedure)
  3. CEO 赠书 | 甲之蜜糖乙之砒霜,创新者也将成为守旧者
  4. 完全卸载sql2005(试了以后很成功,收录下来,分享给大家)
  5. wenbao与最优比率生成树
  6. nginx 禁止某个IP访问
  7. Leetcode之整数反转
  8. 项目3:PHP抽奖程序 ,抽奖规则代码 分时间段
  9. qt 串口助手_新手如何从零开发ROS小车 (ros串口通讯、PID运动控制、双轮差速模型解算...
  10. 使用Python实现XML文件转为Excel文件
  11. [高通MSM8953_64][Android10]user版本默认获取root权限
  12. Java:判断某年是闰年or平年并输出某月的天数
  13. ubuntu命令行模式与图形桌面切换方法
  14. ai的布尔运算在哪_在AI中如何进行布尔运算
  15. 心肺运动试验----各类参数分析笔记
  16. ldaps 认证环境
  17. win10如何打开计算机端口,win10系统开启计算机端口的操作方法
  18. rollback mysql_MySQL事务-ROLLBACK,COMMIT用法详解
  19. python计时器类
  20. 利用html写一个日历,Vue写一个日历

热门文章

  1. 手机淘宝APP怎么复制商品链接发送到微信公众号查询淘宝优惠券及淘宝返利?
  2. 数据架构选型必读:2021上半年数据库产品技术解析
  3. 移动开发用户行为分析神器之--AppSee!
  4. 四旋翼飞行器避障系统基础
  5. Protues8__示波器的使用
  6. ma5200f设置使用用户名、密码登陆
  7. ECharts数据可视化:从0到1的蜕变(内部技术分享总结)
  8. 基于stm32的无线多点温度采集系统设计
  9. 音频信号转为开关控制信号_基于CPCI总线控制卡的信号完整性设计
  10. python聊天程序程序代码_python聊天程序实例代码分享 -电脑资料