python——pandas库之Series数据结构基础

文章目录

    • pandas之Series
        • 1.Series简介
        • 2.Series属性
        • 3.数学运算
        • 4.缺失值检测
        • 6.Series自动对齐索引
        • 7.name属性

pandas之Series

1.Series简介

Series是一种一维的数组型对象,它包含了一个数值和数据标签,称为索引

import pandas as pd
import numpy as np
obj = pd.Series([4, 7, -5, 3])
obj

 OUT:

0    4
1    7
2   -5
3    3
dtype: int64

2.Series属性

通过valus属性和index属性分别获得Series对象的值和索引

obj.values

 OUT:

array([ 4,  7, -5,  3], dtype=int64)
obj.index # 与range()相似

 OUT:

RangeIndex(start=0, stop=4, step=1)

可以建立一个索引数列,用标签来标识每个数据点

obj2 = pd.Series([4, 7, -5, 3], ['a', 'b', 'c', 'd'])
obj2

 OUT:

a    4
b    7
c   -5
d    3
dtype: int64

可以使用标签来进行索引

obj2['a']

 OUT:

4
obj2[['a', 'b', 'c']]

 OUT:

a    4
b    7
c   -5
dtype: int64

3.数学运算

支持数学运算和数学函数

obj2[obj2 > 0]

 OUT:

a    4
b    7
d    3
dtype: int64
obj2 * 2

 OUT:

a     8
b    14
c   -10
d     6
dtype: int64
np.exp(obj2)

 OUT:

a      54.598150
b    1096.633158
c       0.006738
d      20.085537
dtype: float64

5.Series也可以看成是一个字典

'a' in obj2

 OUT:
True

'e' in obj2

 OUT:

False

可以使用字典生成Series

sdata = {
     'a' : 1, 'c' : 3, 'b' : 2, 'd' : 4}
obj3 = pd.Series(sdata)
obj3

 OUT:

a    1
c    3
b    2
d    4
dtype: int64

自定义字典键的顺序

states = ['a', 'b', 'c', 'e']
obj4 = pd.Series(sdata, states)
obj4

 OUT:

a    1.0
b    2.0
c    3.0
e    NaN
dtype: float64

在数据没有出现过的标签对应的值为NAN,因为‘d’不再states中,它被排除在结果对象外

4.缺失值检测

pandas中使用isnull和notnull来检查缺失数据

pd.isnull(obj4)

 OUT:

a    False
b    False
c    False
e     True
dtype: bool
pd.notnull(obj4)

 OUT:

a     True
b     True
c     True
e    False
dtype: bool
obj4.isnull()

 OUT:

a    False
b    False
c    False
e     True
dtype: bool
obj4.notnull()

 OUT:

a     True
b     True
c     True
e    False
dtype: bool

6.Series自动对齐索引

如果没有规定索引顺序的话,新产生的Series对象的索引时排序好的字典键。如:obj3+obj4

obj3

 OUT:

a    1
c    3
b    2
d    4
dtype: int64
obj4

 OUT:

a    1.0
b    2.0
c    3.0
e    NaN
dtype: float64
obj3 + obj4

 OUT:

a    2.0
b    4.0
c    6.0
d    NaN
e    NaN
dtype: float64

7.name属性

Series对象自身和索引都有name属性

obj4.name = 'population'
obj4.index.name = 'state'
obj4

 OUT:

state
a    1.0
b    2.0
c    3.0
e    NaN
Name: population, dtype: float64

Series对象的索引可以通过按位置赋值的方式进行改变

obj

 OUT:

0    4
1    7
2   -5
3    3
dtype: int64
obj.index = ['a', 'b', 'c', 'd']
obj

 OUT:

a    4
b    7
c   -5
d    3
dtype: int64

你可能感兴趣的:(python,python,数据分析)