Pandas 入门

Pandas 概述

Pandas 包含的数据结构和数据处理工具的设计使得在Python中进行数据清洗和分析非常快捷,Pandas经常和其他数值工具一起使用比如Numpy和Scipy,以及数据可视化工具matplotlib一起使用。
尽管Pandas采用了很多Numpy的代码风格,但最大的不同在于Pandas 是用来处理表格型或异质型数据的吗,而Numpy则相反,它更适合用来处理同质型的数值类数据。
在下面的介绍中我们会用下面的方式去引入Pandas:

In [1]: import pandas as pd

Pandas 数据结构介绍

要使用Pandas,你首先就得熟悉它的两个主要数据结构:Series和DataFrame。虽然它们并不能解决所有问题,但它们为大多数应用提供了一种可靠的、易于使用的基础。
在上一篇中,我们介绍了Series,那么在这一篇中我们将着重介绍DataFrame.

DataFrame之一

DataFrame是一个表格型的数据结构(或者理解为表示的是矩阵的数据表),它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔值等)。DataFrame既有行索引也有列索引,DataFrame中的数据是以一个或多个二维块存放的(而不是列表、字典或别的一维数据结构)。

构建DataFrame的方式

1.利用包含等长度列表或者Numpy数组的字典来构建

In[2]: data = {'fruits':['apple','banana','orange'],'price':[2,3,5]}
In[3]: frame =pd.DataFrame(data)
In[4]: frame
out[4]:     fruits  price
     0      apple   2
     1      banana  3
     2      orange  5
In[5]:frame.head()
out[5]:     fruits  price
    0       apple   2
    1       banana  3
    2       orange  5
    3       pear    1
    4       berry   4

可以看到head()方法只显示前五行。
我们在上一篇文章中提到Series可以指定顺序,那么在DataFrame的结构中是否也可以指定顺序呢?答案是肯定的。

In[6]: pd.DataFrame(data,columns=['price','fruits'])
out[6]:     price   fruits
      0     2       apple
      1     3       banana
      2     5       orange
      3     1       pear
      4     4       berry
      5     6       watermelon
      6     7       muskmelon

同样,在Series的结构中,如果我们指定的列没有包含在数据中,会出现缺失值。那么在DataFrame这个结构中,如果我们指定的列没有包含在数据中,也会出现缺失值,同样也是用NaN来表示。

In[7]:frame2=pd.DataFrame(data,columns=['price','fruits','discount'])
out[7]: 
    price   fruits      discount
0   2       apple       NaN
1   3       banana      NaN
2   5       orange      NaN
3   1       pear        NaN
4   4       berry       NaN
5   6      watermelon   NaN
6   7      muskmelon    NaN

列的引用是可以修改的,例如,我们把刚才创建的列discount修改成0.8.

In[8]:frame2['discount'] = 0.8
In[9]: frame2
out[9]:
    price   fruits  discount
0   2       apple   0.8
1   3       banana  0.8
2   5       orange  0.8
3   1       pear    0.8
4   4       berry   0.8
5   6       watermelon  0.8
6   7       muskmelon   0.8

del 关键字可以删除列,我们把刚才创建的discount删除

In[8]:del frame2['discount']
In[9]:frame2
out[9]:     price   fruits
      0     2       apple
      1     3       banana
      2     5       orange
      3     1       pear
      4     4       berry
      5     6       watermelon
      6     7       muskmelon

我们还可以对DataFrame进行装置。

In[10]:frame2.T
out[10]:
        0   1   2   3   4   5   6
price   2   3   5   1   4   6   7
fruits  apple   banana  orange  pear    berry   watermelon  muskmelon

这些操作是不是很像我们的矩阵的操作?
DataFrame也有values属性

In[11]: frame2.values
out[11]:array([['apple', 2],
       ['banana', 3],
       ['orange', 5],
       ['pear', 1],
       ['berry', 4],
       ['watermelon', 6],
       ['muskmelon', 7]], dtype=object)

关注公众号“神经网络与深度学习”获取更多精彩内容!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容