Coursera-Applied Data Science with Python-Introduction to Data Science in Python-Week2

这篇博客详细介绍了Pandas中的Series和DataFrame数据结构。Series是一个一维数组,类似于有序字典,可以用索引和值创建。DataFrame是二维表格型数据结构,类似数据库表格,由相同索引的Series组成。博客内容包括如何创建、查询、修改Series和DataFrame,以及处理缺失值的方法。
摘要由CSDN通过智能技术生成

一、The Series Data Structure:

Series是pandas的核心数据结构之一,在pandas中,Series是一个一维的类似的数组对象,可以看成一个介于list和dictionary之间的结构,它包含一个数组数据(任何numpy数据类型)和一个与数组关联的索引。为了方便理解,你可以把Series看着是一个有序字典。其中索引是连续的,从0开始。


在底层,pandas使用Numpy库将Series中的值存储到一个类型数组中(a typed array),这样的话,使得处理series比处理传统的python的list要快很多。

1.创建Series:

    以list创建Series:

    如果只给出了list而不给出相应的index的话,pandas会对值自动分配从0开始的自增的index。而且在没有指定Series的name属性的情况下,pandas会根据处理内容添加上相应的name,比如下面的两个例子中,第一个的name就是object,第二个是int64。

import pandas as pd
animals = ['Tiger', 'Bear', 'Moose']
pd.Series(animals)
  
numbers = [1, 2, 3]
pd.Series(numbers)

   在python中以None表示缺失的数据,而在pandas中会根据所处理的对象类型的不同分为None和NaN,None代表某个对象,字符串等的缺失;NaN代表的是数值上的缺失,它和None很相似,但是NaN是数值类型的(numeric value)。这样分开处理的原因是,NaN的处理效率更高。

animals = ['Tiger', 'Bear', None]
pd.Series(animals)

numbers = [1, 2, None]
pd.Series(numbers)

    对于None和NaN来说,要注意下面几点:


   以dictionary创建series:
sports = {'Archery': 'Bhutan',
          'Golf': 'Scotland',
          'Sumo': 'Japan',
          'Taekwondo': 'South Korea'}
s = pd.Series(sports)
s
       可以通过Series的index属性获得所有的index

       使用dictionary创建series时,我们可以为series通过index参数指定series的index,具体来说就是,不管dictionary中的key值,以index参数列表中的值为准,即以后出现在series里的index一定是从index参数列表中来的,与dictionary中的key值无关。对于同时存在于index参数列表和dictionary的key的index值来说,series中会有相应的数据及标签;对于只在index参数列表中存在的index值来说,series中只有index值,相应的值被设置为None或者NaN;对于只在dictionary的key值中存在的index来说,series中不会出现。

    指定index和value:

s = pd.Series(['Tiger', 'Bear', 'Moose'], index=['India', 'America', 'Canada'])
s

   指定的index和dictionary的key不匹配:

sports = {'Archery': 'Bhutan',
          'Golf': 'Scotland',
          'Sumo': 'Japan',
          'Taekwondo': 'South Korea'}
s = pd.Series(sports, index=['Golf', 'Sumo', 'Hockey'])
s

2.获得Series中的值:

在Series中,数据(value)可以通过位置(index position)和标签(index label)进行查询。在没有为series设置index的情况下,位置和标签其实是一回事,都是从0开始自增的整数。

如果是采用位置进行查询的话,使用iloc属性ÿ

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值