pandas fillna_Numpy和Pandas数据结构总结

f71efdb0f75e5e84e2b27a384f968968.png

Numpy和Pandas的关系:

  1. 二者都是Python的三方库
  2. Numpy是基本的数值计算库
  3. Pandas是处理不同变量的表格计算的库
  4. Pandas有两个核心数据结构series 和 dataFrame 一个dataframe可以包含多个series
  5. 两者相辅相成,pandas一些数据处理库是建立在numpy基础上的。

Numpy

为什么需要用到它?

因为Python中的array模块,不支持多维和运算模块,不适合做数值计算;

Numpy提供两种基本对象:

  1. ndarray N维数组对象,是存储单一数据类型的多维数组;
  2. ufunc,是对数组进行处理的函数。

输入数组并打印:

8d0c518892f22c154eda29752d22ccca.png

指定数组类型:

5b39bd9fb66ccd05a635c3e150903e08.png

查看这个数组的类别:

3d19bc1864b46b63d297e06639d91b33.png

可以看到数组是ndarray。

查看到它其实是一个序列:

0d280e77b7df0a90f275d3794477f263.png

索引数组中的元素:

1e4afa6bb6480c23ea41f0b3d2cb40db.png

这个数组中第0个元素是1。

重新给第0个元素赋值,并打印:

cfbe316f161fa41cbadbf885c42a83c5.png

建立数组,打印,并查看数组类型:

a174c384953b2506faeda25820dabd59.png

查看shape:

8e025a9d8838aa4b3390b63cfd2b68dc.png

2行3列。

二维数组索引 a[行号,列号]:

f0cbb491f94b1519e46b1b28e9a17742.png

特殊数组:

Numpy.zeros()

分别生成一维序列,和二维(2行4列)

9e8aafe0eb8c00a66578f9b3030b53a0.png

D = numpy.zeros([2,4]) 和D = numpy.zeros((2,4))一样

Numpy.ones()

全1数组:

133b9f596062e96926e4d12c978f0ff9.png

Numpy.full():

生成全是某个值的数组

6ec454e429942594fe7c5df9e62368ea.png

Numpy.eye():

单位矩阵,由于单位矩阵行列相同,所以只需要输入一个数字:

aa2ee81c614b1813a641b6c580c174f4.png

numpy.random.random():

随机数组:

73c3ec03a9d047203f303fa090d0bf74.png

切片和索引:

65984c6fcef07addfe383db5717539eb.png

a[0:2,0:4],意思是索引从第0行到第1行,第0列到第3列。

间隔提取:

e6a74deed7abd0ceae879114754e9b69.png

第一个冒号前后表示开始和结束位置,第二个冒号后面表示间隔的大小。

使用其他序列来索引:

b40909dff235a120e4d01f58ed21f98d.png

冒号写法不同的区别:

0d157315ddd68e961e6090f5c30ec9e7.png

可以看到上面一种方式,输出的是2维数组,下面一种却是1维序列。

分别输出第0个元素:

4c08458ed6894efead616b286828ae44.png

四种读取多维数组元素的方式:

36e3da4fa03136a2928701d895928bd1.png

dd4b5e90460d15c2a1eded9642ff8a26.png

总结这4种方法,原则就是定义清楚行列号。

Bool索引:

6e982ababb614543becbe2489316308c.png

创建数组函数:

Numpy.arange(start , stop, step, dtype)

生成序列:

82fbf39d8dad70d3feeec9982f0e4b21.png

numpy.linspace(start,stop,num,endpoint,retstep,dtype):

a8d2fc3f1d3c61777c9de16c69c8e216.png

numpy.logspace(start,stop,num,endpoint,base,dtype):

a8d30d500d8de5a4d113a33ac6d3a017.png

Pandas:

pandas的数据类型主要是:Series和DataFrame:

Series:

可以和pandas生成的序列对比查看:

22f4c2777f73bbe97f3385cb5540bdb9.png

DataFrame:

生成一个3行4列dataframe

ae4b06c047100b08a0155f448bca320b.png

取第0列两种方法:

c633b24b1b1492fcacdeac9add21800b.png

生成数据时制定列名和index:

3f936c4f93e8e15e028606376a352373.png

拼接序列:

605a06ed809424eab04ef6054532260e.png

给dataframe添加列:

5104abf021839e98ea5c8e2fd9a304ce.png

查看列名、index和值:

f530f29740ca78e3d5e22733739d5cff.png

Loc和iloc的区别:loc通过索引访问,iloc通过行和列标访问:

d62b5aa80380bc2376bf419b85a5d02a.png

0e0ca4525ec332048c4d2ed9755a8633.png

重命名列名:

3329149571e7121f6c691e4e9b2b63c4.png

dropna(axis=1,how=’all’):这个意思是,删除列,当这列所有为空时才删除。当how=’any’,表示只要有空就删除,且注意,dropna并不是删除原数据,只是新生成了一个dataframe。

fillna(0):表示用0去替换。

fillna(note[‘5’.mean()]):用这列的均值去填充空值。

以上即为pandas和numpy的数据结构总结,再花点时间学习一下各自的计算函数,这两个包就熟悉得差不多了。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值