3d4251d57fcabf783b55cd13c991e38d

        

访问flyai.club,一键创建你的人工智能项目

cefa6e440d1c3face13d1e6de4888197

           

        Pandas含有使数据清洗和分析工作变得更快更简单的数据结构和操作工具。pandas经常和其它工具一同使用,如数值计算工具NumPy和SciPy,分析库statsmodels和scikit-learn,和数据可视化库matplotlib。pandas是基于NumPy数组构建的,特别是基于数组的函数和不使用for循环的数据处理。

        虽然pandas采用了大量的NumPy编码风格,但二者最大的不同是pandas是专门为处理表格和混杂数据设计的。而NumPy更适合处理统一的数值数组数据。

        自从2010年pandas开源以来,pandas逐渐成长为一个非常大的库,应用于许多真实案例。开发者社区已经有了800个独立的贡献者,他们在解决日常数据问题的同时为这个项目提供贡献。

        导入pandas的标准格式:

8db101ef256eb4d47b16123988b2b44e

        

        要使用pandas,你首先就得熟悉它的两个主要数据结构:Series和DataFrame。虽然它们并不能解决所有问题,但它们为大多数应用提供了一种可靠的、易于使用的基础。

        Series是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一组与之相关的数据标签(即索引)组成。仅由一组数据即可产生最简单的Series

d210b4fbacda3e5bb09c7fa4546a285a

        Series的字符串表现形式为:索引在左边,值在右边。由于我们没有为数据指定索引,于是会自动创建一个0到N-1(N为数据的长度)的整数型索引。你可以通过Series 的values和index属性获取其数组表示形式和索引对象:

63e4fa5223c20f9984ab6b41059a2452

        通常,我们希望所创建的Series带有一个可以对各个数据点进行标记的索引:

5f01f95ba1ee95c320ba51e28e5a3dd6

        与普通NumPy数组相比,你可以通过索引的方式选取Series中的单个或一组值:

8bc1a0accd14c4d6aa7355d554acb164

        ['c', 'a', 'd']是索引列表,即使它包含的是字符串而不是整数

        使用NumPy函数或类似NumPy的运算(如根据布尔型数组进行过滤、标量乘法、应用数学函数等)都会保留索引值的链接:

290614f423a4123fd0c32fcfccf86726

        还可以将Series看成是一个定长的有序字典,因为它是索引值到数据值的一个映射。它可以用在许多原本需要字典参数的函数中:

c912f65a09fd3a8915d987a8d0a9e2fb

        如果数据被存放在一个Python字典中,也可以直接通过这个字典来创建Series:

ac6f15518e974f03ca2ba1d6b6ddaff9

        如果只传入一个字典,则结果Series中的索引就是原字典的键(有序排列)。你可以传入排好序的字典的键以改变顺序:

9aa0958cb7fae5dd08c0ca1d25536c54

        在这个例子中,sdata中跟states索引相匹配的那3个值会被找出来并放到相应的位置上,但由于"California"所对应的sdata值找不到,所以其结果就为NaN(即“非数字”(not a number),在pandas中,它用于表示缺失或NA值)。因为‘Utah’不在states中,它被从结果中除去。

        我将使用缺失(missing)或NA表示缺失数据。pandas的isnull和notnull函数可用于检测缺失数据:

400b4929ba21b7bf56e5366c31d28c0c

        Series也有类似的实例方法:

71067acf8dbb17e8c8ae8a7bdcc2f8ce

        对于许多应用而言,Series最重要的一个功能是,它会根据运算的索引标签自动对齐数据:

22966feffe795754eba19b01b1a8b5e1

        数据对齐功能将在后面详细讲解。如果你使用过数据库,你可以认为是类似join的操作。

        Series对象本身及其索引都有一个name属性,该属性跟pandas其他的关键功能关系非常密切:

295273b96c67a425c01fd97464f84947

        Series的索引可以通过赋值的方式就地修改:

99ffe7055c9438351f7c5c779c77b5d6

        

e96f39ea5d6f111efc99a2028a9be4df

点击  ,动手操作

—  End —

152fd022b556c54affda864c5e621273

d4b6c361634b457a339bfe6f4c9425f7

822c9011dafb958b2670d41b267b14f7