科学数据库(Pandas)——第一节:pandas之Series类型

本文详细介绍了pandas库中Series的数据结构,包括其本质——由索引和值组成的数组,展示了创建Series的两种方法,以及如何进行切片、索引和处理缺失值。此外,还讲解了Series的where和mask方法的应用。
摘要由CSDN通过智能技术生成

目录

 

Series的本质

Series的创建

Series的切片和索引

pandas中的缺失值

Series具有的where方法


Series的本质

Series 是一维的数组型对象,本质上由两个数组构成,一个数组构成对象的键(index,索引),一个数组构成对象的值(values),键->值

Series的创建

先导入pandas模块

import pandas as pd

方法一:向Series里传入列表(index不写,默认从0开始),index可以设置指定值,但是index的个数必须和值的个数保持一致。

In [18]: pd.Series([1,5,8,23,5])
Out[18]:
0     1
1     5
2     8
3    23
4     5
dtype: int64

In [17]: pd.Series([1,5,8,23,5],index=list("abcde"))
Out[17]:
a     1
b     5
c     8
d    23
e     5
dtype: int64

方法二:通过字典创建一个Series,字典的键就是Series的索引。

In [20]: temp_dict = {"name": "xiaohong", "age": 30, "te
    ...: l": 10086}

In [21]: t2=pd.Series(temp_dict)

In [22]: t2
Out[22]:
name    xiaohong
age           30
tel        10086
dtype: object

 

 

Series的切片和索引


In [22]: t2
Out[22]:
name    xiaohong
age           30
tel        10086
dtype: object

In [36]: t2.index
Out[36]: Index(['name', 'age', 'tel'], dtype='object')

In [37]: for i in t2.index:   #index是可迭代的对象,可以遍历
    ...:     print(i)
    ...:
name
age
tel
In [38]: len(t2.index)   #计算index个数
Out[38]: 3

In [39]: list(t2.index)
Out[39]: ['name', 'age', 'tel']

In [40]: list(t2.index)[:2]
Out[40]: ['name', 'age']

In [41]: t2.values
Out[41]: array(['xiaohong', 30, 10086], dtype=object)

In [42]: type(t2.values)
Out[42]: numpy.ndarray

In [43]: type(t2.index)
Out[43]: pandas.core.indexes.base.Index

pandas中的缺失值

pandas中用NAN来标记缺失值,使用isnull和notnull函数来检查缺失数据

temp_dict = {"name": "xiaohong", "age": 30, "tel": 10086}
t2=pd.Series(temp_dict)
In [47]: states=["name","num","tel"]
    ...: t3=pd.Series(temp_dict,index=states)

In [48]: t3
Out[48]:
name    xiaohong
num          NaN
tel        10086
dtype: object

In [49]: pd.isnull(t3)
Out[49]:
name    False
num      True
tel     False
dtype: bool

In [50]: pd.notnull(t3)
Out[50]:
name     True
num     False
tel      True
dtype: bool

 

Series具有的where方法

Series.where(cond, other=nan, inplace=False, axis=None, level=None, errors=‘raise’, try_cast=False, raise_on_error=None)
如果 cond 为真,保持原来的值,否则替换为other的值, other不写默认为NAN

In [3]: s = pd.Series(range(5))

In [4]: s.where(s>0)  #将符合条件的值显示出来,不符合的则显示NAN
Out[4]:
0    NaN
1    1.0
2    2.0
3    3.0
4    4.0
dtype: float64

In [5]: s.where(s>0,10)  
Out[5]:
0    10
1     1
2     2
3     3
4     4
dtype: int64

#mask函数的作用与where刚好相反
In [6]: s.mask(s>0,10)
Out[6]:
0     0
1    10
2    10
3    10
4    10
dtype: int64

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值