Python-Pandas学习之序列(Series)

25 篇文章 0 订阅
18 篇文章 3 订阅

Pandas是Python的一个库,专门用于处理数据的库,里面提供了很强大的数据处理工具,可以使用下面命令安装这个库:

$ pip install pandas

 

Series是一种一维的数组对象,包含了一个值序列和数据标签,也就是索引(index),下面是一种最简单的序列:

import pandas as pd #引用pandas模块

obj = pd.Series([1, 2, 3, 4, 5])

print(obj)
#打印
    0    1
    1    2
    2    3
    3    4
    4    5
    dtype: int64

print(obj.value)
#打印
    [1 2 3 4 5]

print(obj.index)
#打印
    RangeIndex(start=0, stop=5, step=1)

#下面创建一个指定了index的序列
obj2 = pd.Series(data=[1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e'])
print(obj2)
#打印
    a    1
    b    2
    c    3
    d    4
    e    5
    dtype: int64

print(obj2)
#打印
    Index(['a', 'b', 'c', 'd', 'e'], dtype='object')

print(obj2['a']) #通过索引取的值
#打印
    1

print(obj2[['a', 'b', 'd']]) #通过索引数组取值
#打印
    a    1
    b    2    
    d    4    
    dtype: int64

print(obj2[obj2 > 3]) #通过判断获取达到条件的值
#打印
    d    4
    e    5
    dtype: int64

print(obj2 * 2) #和整数相乘,是将里面的值一次和整数相乘
#打印
    a     2
    b     4
    c     6
    d     8
    e    10
    dtype: int64

print('b' in obj2) #判断是否存在index=‘b’
#打印
    True

print('f' in obj2)
#打印
    False

#接下来,还可以通过字典生成序列
dic = {'h': 6, 'i': 7, 'j': 8, 'k': 9, 'l': 10}
obj3 = pd.Series(dic)
print(obj3)
#打印
    h     6
    i     7
    j     8
    k     9
    l    10
    dtype: int64

#在创建序列时,可以将排好序的index数组,传递给Series构造函数,那么得到的结果也是按照你给的顺序排好的
dic = {'h': 6, 'i': 7, 'j': 8, 'k': 9, 'l': 10}
tidx = ['i', 'k', 'l', 'j', 'm']
obj4 = pd.Series(dic, index=tidx)
print(obj4)
#打印
    i     7.0
    k     9.0
    l    10.0
    j     8.0
    m     NaN
    dtype: float64
#注意,我传递的数组没有‘h’,所以‘h’不在obj4之内,但是传递了‘m’,由于没有找到对应的,所以使用NaN来表示这个值是空

#可以使用isnull和notnull来判断是否为空
print(pd.isnull(obj4))
#打印
    i    False
    k    False
    l    False
    j    False
    m     True
    dtype: bool

print(pd.notnull(obj4))
#打印
    i     True
    k     True
    l     True
    j     True
    m    False
    dtype: bool

print(obj4.isnull()) #同pd.isnull一样,同样的notnull也是一样
#打印
    i    False
    k    False
    l    False
    j    False
    m     True
    dtype: bool


#两个序列可以做相加操作,如果有一个为NaN,那么结果也是NaN
print(obj3 + obj4)
#打印
    h     NaN
    i    14.0
    j    16.0
    k    18.0
    l    20.0
    m     NaN
    dtype: float64


#Series对象是有name属性的,可以给序列定一个名字
obj4.name = 'hello'
obj4.index.name = 'world'
print(obj4)
#打印
    world
    i     7.0
    k     9.0
    l    10.0
    j     8.0
    m     NaN
    Name: hello, dtype: float64

#序列的index是可以重新设置的,按照位置传递一个数组进去
obj4.index = ['o', 'p', 'q', 'r', 's']
print(obj4)
#打印
    o     7.0
    p     9.0
    q    10.0
    r     8.0
    s     NaN
    dtype: float64

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苏小败在路上

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值