机器学习—数据科学库(HM)—自由式学习5

pandas是Python中用于数据分析的库,它扩展了NumPy的功能,处理包括数值、字符串和时间序列在内的多种数据类型。文章介绍了Series(带标签的一维数组)和DataFrame(二维表格型数据结构)的基本用法,包括数据读取、数据操作以及处理缺失值和统计分析。此外,还提到了布尔索引和字符串方法在数据筛选和处理中的应用。
摘要由CSDN通过智能技术生成

文章目录


前言

那么问题来了:numpy已经能够帮助我们处理数据,能够结合matplotlib解决我们数据分析的问题,那么pandas学习的目的在什么地方呢?

numpy能够帮我们处理处理数值型数据,但是这还不够

很多时候,我们的数据除了数值之外,还有字符串,还有时间序列

比如:我们通过爬虫获取到了存储在数据库中的数据

比如:之前youtube的例子中除了数值之外还有国家的信息,视频的分类(tag)信息,标题信息等

numpy能够帮助我们处理数值,但是pandas除了处理数值之外(基于numpy),还能够帮助我们处理其他类型的数据


一、pandas是什么?

pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

pandas is an open source, BSD-licensed library providing high-performance, easy-to-use data structures and data analysis tools for the Python programming language.

二、pandas的常用数据类型

1.Series 一维,带标签数组

pandasSeries创建

import pandas as pd
t=pd.Series([1,2,31,12,3,4])
type(t)

 

 

 

 

 

 对于一个陌生的series类型,我们如何知道他的索引和具体的值呢?


2.pandas之读取外部数据

和我们想象的有些差别,我们以为他会是一个Series类型,但是他是一个DataFrame,那么接下来我们就来了解这种数据类

但是,还有一个问题:对于数据库比如mysql或者mongodb中数据我们如何使用呢

pd.read_sql(sql_sentence,connection)

那么,mongodb呢?


3.pandas之DataFrame

DataFrame对象既有行索引,又有列索引

行索引,表明不同行,横向索引,叫index0轴,axis=0

列索引,表名不同列,纵向索引,叫columns1轴,axis=1

1. DataFrame Series 有什么关系呢?
dataframe的每一列或者每一行都是series
2. Series 能够传入字典,那么 DataFrame 能够传入字典作为数据么 ?那么 mongodb 的数据 是不是也可以这样传入呢?
可以传入

3. 对于一个 dataframe 类型,既有行索引,又有列索引,我们能够对他做什么操作呢

 

那么回到之前我们读取的狗名字统计的数据上,我们尝试一下刚刚的方法

那么问题来了:很多同学肯定想知道使用次数最高的前几个名字是什么呢?

df.sort_values(by="Count_AnimalName",ascending=False)

那么问题又来了:如果我的数据有10列,我想按照其中的第1,第3,第8列排序,怎么办?(ipythpn的帮助文档)

还有更多的经过pandas优化过的选择方式:

1.df.loc 通过标签索引行数据

 

2.df.iloc 通过位置获取行数据


4.pandas之布尔索引

 回到之前狗的名字的问题上,假如我们想找到所有的使用次数超过800的狗的名字,应该怎么选择?

 


5.pandas之字符串方法


6.pandas缺失值处理 

我们的数据缺失通常有两种情况:

一种就是空,None等,在pandasNaN(np.nan一样)

另一种是我们让其为0

判断数据是否为NaNpd.isnull(df),pd.notnull(df)

处理方式1:删除NaN所在的行列dropna (axis=0, how='any', inplace=False)

处理方式2:填充数据,t.fillna(t.mean()),t.fiallna(t.median()),t.fillna(0)

处理为0的数据:t[t==0]=np.nan

当然并不是每次为0的数据都需要处理,计算平均值等情况,nan是不参与计算的,但是0


7.pandas常用统计方法

对于这一组电影数据,如果我们想ratingruntime的分布情况,应该如何呈现数据?

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值