Pandas基础学习笔记(一)——Series用法

一、什么是pandas?

Pandas是python的核心数据分析支持库,它提供了快速、灵活、明确的数据结构,旨在简单、灵活地处理关系型数据。

二、Pandas的数据结构

1、Series:

        Series是一种类似于一维数组的数据结构,它由一组数据(可以是不同的数据类型)以及一组与之相关的数据标签index(即索引)组成,还可以指定Series的名称。

  • Series是带有名称和索引的一维数组。
  • 数组中的元素可以是任意数据类型的组合。

2、DataFrame:

        DataFrame是一种表格型的数据结构。它的每一列可以是不同的值类型(例如布尔型、数值型、字符串等),此外它既有行索引index,又有列索引columns。我们可以将它看成是由Series组成的字典(将每一列看成是一个Series)。

三、Series:

1、使用列表创建:

pd.Series(
    data=None, #数据列表
    index=None, #索引列表
    name=None, #Series名字
    dtype=None,
    copy=None,
    fastpath=Flase)

示例:

tmp=pd.Series(data=[23,'lucky'],index=['age','name'],name='people')
print(tmp)

运行结果:

Pandas基础学习笔记(一)——Series用法_第1张图片

 2、使用字典创建:

pd.Series(
    {}
    name=None,
    dtype=None,
    copy=False,
    fastpath=False)

示例:

tmp_dict=pd.Series({'age':23,'name':'Mary'},name='people')
print(tmp_dict)

运行结果:

Pandas基础学习笔记(一)——Series用法_第2张图片

3、索引 :

  • 按索引名索引:s['age'],返回具体值;
    import pandas as pd
    tmp_dict=pd.Series({'age':23,'name':'Mary','gender':'M','place':'shanxi'},name='people')
    r=tmp_dict['age']
    print(r)

  • 按序号索引:s[0],返回具体值;
    r=tmp_dict[0]
    print(r)

  • 按序号切片索引:s[0,2],区间开闭情况取s[include,exclude],结果返回Series;
    r=tmp_dict[0:2]
    print(r)

    Pandas基础学习笔记(一)——Series用法_第3张图片

  • 按索引名切片索引:s['age':'gender'],区间的开闭情况取s[include,include],结果返回Series;
    r=tmp_dict['age':'gender']
    print(r)

    Pandas基础学习笔记(一)——Series用法_第4张图片

  • 按数组索引:s[[0,2]],s[['age','gender']]
    r=tmp_dict[[0,2]]
    print(r)

    Pandas基础学习笔记(一)——Series用法_第5张图片

    r=tmp_dict[['age','gender']]
    print(r)

    Pandas基础学习笔记(一)——Series用法_第6张图片

  • 按逻辑值查找

        由Series构成逻辑表达式时(例如将一个Series与一个数值进行比较),广播机制会将Series中的每一个值代入逻辑表达式,因此最终会得到一个与原Series形状相同的且全部由布尔值构成的Series,每一个位置的布尔值对应该位置的比较结果。

        如果继续用该逻辑表达式对Series进行查找,那么结果会返回一个由满足条件的值(即对应位置为True)构成的Series,但是值得注意的是,结果中会沿用原来Series的值的索引

        举例:

s=pd.Series([23,45,56,34,11,19])
r1=s>30 #返回由True和False构成的Series
r2=s[s>30] #返回满足条件的值构成的Series,注意会沿用之前的索引
print('r1\n',r1)
print('r2\n',r2)

        运行结果:

Pandas基础学习笔记(一)——Series用法_第7张图片

Pandas基础学习笔记(一)——Series用法_第8张图片

         如果不想沿用之前的索引,也可以通过reset_index()函数给索引赋新名字。这个方法的原理就是把原本的index作为新的一列与原来的Series结合变成了一个新的DataFrame。如果不想要index这一列,我们可以drop去掉即可,使用reset_index(drop=True)

举例:

r3=r2.reset_index()
print(r3,'\n',type(r3))

Pandas基础学习笔记(一)——Series用法_第9张图片

举例:

r4=r2.reset_index(drop=True)
print(r4,'\n',type(r4))

Pandas基础学习笔记(一)——Series用法_第10张图片

4、Series基本属性:

  • shape:Series的长度(元素的个数)
  • index:Series的索引
  • values:Series的值

5、Series的常用方法:

  • head(n)/tail(n):默认n为5
  • unique():返回不重复的数组
  • nunique():返回去重后的值的个数
  • dropna():返回一个删除缺失值的数组
  • fillna(value):将缺失值设置为传入的参数,返回数组
  • isin([values]):与values进行比较,如果相等则为True,否则为False。(即遍历Series中的值,与values中的值一一比较,如果有相等的就返回True,否则为False)

举例:

s=pd.Series([23,23,45,45,56,34,11,19])
print(s.isin([23,45]))

 Pandas基础学习笔记(一)——Series用法_第11张图片

  • sort_values(ascending=True):返回升序排序结果
  • sort_values(ascending=False):返回降序排序结果

6、Series——字符串类型

s=pd.Series(['zhangsan','lisi','wangwu','zaoliu'])

可以通过 s.str.方法 来调用字符串的各种方法,例如replace(old,new)、startswith()等。


剩余知识点详见下期blog哟!

你可能感兴趣的:(pandas,学习,python)