《scikit-learn机器学习常用算法原理及编程实战》—2.4 Pandas简介

举报
华章计算机 发表于 2019/05/31 16:18:47 2019/05/31
【摘要】 本书摘自《scikit-learn机器学习常用算法原理及编程实战》一书中的第2章,第2.4.1节,编著是黄永昌 .

2.4  Pandas简介

  Pandas是一个强大的时间序列数据处理工具包,最初开发的目的是为了分析财经数据,现在已经广泛应用在Python数据分析领域中。本节通过简单的介绍,让读者熟悉简单的Pandas概念及操作。

2.4.1  基本数据结构

  Pandas最基础的数据结构是Series,用它来表达一行数据,可以理解为一维的数组。比如下面的代码,创建了一个包含6个数据的一维数组。

  

  # Series 对象可以理解为一维数组

  s = pd.Series([4, 2, 5, 0, 6, 3])

  s

  

  其输出为:

  

  0    4

  1    2

  2    5

  3    0

  4    6

  5    3

  dtype: int64

  

  另外一个关键的数据结构为DataFrame,它表示的是二维数组。下面的代码为创建一个DataFrame对象。

  

  # DataFrame 是二维数组对象

  df = pd.DataFrame(np.random.randn(6,4), columns=list('ABCD'))

  df

  

  输出为:

  

    A         B         C         D

  0 0.968762  1.501239  -0.284952 -0.456468

  1 1.413471  -0.309746 0.407559  1.536548

  2 -0.399065 -0.040439 1.339359  -0.318217

  3 -0.152205 -0.121888 0.841658  -1.493958

  4 0.248414  -0.676985 1.326487  -0.455541

  5 0.906221  -2.158694 -0.201354 -0.024769

  

  DataFrame 里的数据实际是用Numpy的array对象来保存的,读者可以输入df.values来查看原始数据。DataFrame对象的每一行和列都是一个Series对象。我们可以使用行索引来访问一行数据,可以用列名称来索引一列数据。

  

  [IN]: df.iloc[0]

  [OUT]:

  A    0.968762

  B    1.501239

  C   -0.284952

  D   -0.456468

  Name: 0, dtype: float64

  

  [IN]: df.A

  [OUT]:

  0    0.968762

  1    1.413471

  2   -0.399065

  3   -0.152205

  4    0.248414

  5    0.906221

  Name: A, dtype: float64

  

  [IN]:

  print("Row data type: {}".format(type(df.iloc[0])))

  print("Column data type: {}".format(type(df.A)))

  [OUT]:

  Row data type: <class 'pandas.core.series.Series'>

  Column data type: <class 'pandas.core.series.Series'>

  

  Pandas提供了简洁的数据访问功能。DataFrame.shape可以查看数据的维度信息:

  

  [IN]: df.shape

  [OUT]: (6, 4)

  

  通过DataFrame.head()和DataFrame.tail()方法可以访问前n行和后n行的数据:

  

  [IN]: df.head(3)

  [OUT]:

    A         B         C         D

  0 0.968762  1.501239  -0.284952 -0.456468

  1 1.413471  -0.309746 0.407559  1.536548

  2 -0.399065 -0.040439 1.339359  -0.318217

  

  [IN]: df.tail(2)

  [OUT]:

    A         B         C         D

  4 0.248414  -0.676985 1.326487  -0.455541

  5 0.906221  -2.158694 -0.201354 -0.024769

  

  通过DataFrame.index和DataFrame.columns属性,可以访问数据的行索引和列索引信息。

  

  [IN]: df.index

  [OUT]: RangeIndex(start=0, stop=6, step=1)

  

  [IN]: df.columns

  [OUT]: Index([u'A', u'B', u'C', u'D'], dtype='object')

  

  通过DataFrame.describe()方法,可以算出简单的数据统计信息。

  

   [IN]: df.describe()

  [OUT]:

        A         B         C         D

  count 6.000000  6.000000  6.000000  6.000000

  mean  0.497600  -0.301086 0.571459  -0.202068

  std   0.709385  1.178177  0.719762  0.986474

  min   -0.399065 -2.158694 -0.284952 -1.493958

  25%   -0.052050 -0.585176 -0.049126 -0.456236

  50%   0.577317  -0.215817 0.624608  -0.386879

  75%   0.953127  -0.060802 1.205280  -0.098131

  max   1.413471  1.501239  1.339359  1.536548

  

  从输出可以看出,describe()计算出每列的元素个数、平均值、标准差、最小值、最大值及几种中位数的值。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。