pandas学习之Series

搞机器学习、数据可视化这方面的工作、学习,pandas应该是必须要学习的内容。

pandas有两大数据结构:series以及dataframe。

这一篇文章写一些关于series的相关知识。

官方学习资料:https://pandas.pydata.org/pandas-docs/stable/getting_started/dsintro.html(下面代码的例子取自官网)

series可以看做是一个一维的数据结构,多种数据类型可以填充入series。

那么如何创建一个series呢?

s = pd.Series(data, index=index)

series可以由ndarray、dict、scalar value进行构造。

由ndarray构造
s = pd.Series(np.random.randn(5), index=['a', 'b', 'c', 'd', 'e'])

由dict构造
d = {'a': 0., 'b': 1., 'c': 2.}
pd.Series(d)

由scala value构造 
pd.Series(5., index=['a', 'b', 'c', 'd', 'e'])

series就像ndarray一样,所以ndarray相关的方法在series对象上也能够使用。

例如:索引取值,切片,“过滤数据”等等

索引取值
s[0]

切片
s[:3]

过滤数值
s[s > s.median()]

当然,series也像numpy的ndarray一样,有一个类型的字段:

s.dtype
->dtype('float64')

一般直接打印series的对象时,dtype会显示在最后面。

series也像dict一样,它可以支持索引以及key的检测,例如:检测key=y是否在series内。

d = {'b': 1, 'a': 0, 'c': 2}
d=pd.Series(d)
print('f' in d)
->False

series也可以像向量一样进行加减等操作:

d = {'b': 1, 'a': 0, 'c': 2}
d=pd.Series(d)
print(d+d)
->
b    2
a    0
c    4
dtype: int64


print(d[1:]+d[:-1])
->
a    0.0
b    NaN
c    NaN
dtype: float64

当加法前后的index不匹配时,对应的value会自动推断为NaN

当然,你也可以给series取一个专属名字,只要在构建series时给一个name参数就可以了。

d = {'b': 1, 'a': 0, 'c': 2}
d=pd.Series(d, name='abc')
->
b    1
a    0
c    2
Name: abc, dtype: int64

不过,当你rename这个series对象的时候,它两就不是一个对象了。

d = {'b': 1, 'a': 0, 'c': 2}
d=pd.Series(d,name='abc')
c1=d.rename('ab')
print(id(c1),id(d))
->感兴趣可以看看结果,应该是不一致的。

猜你喜欢

转载自blog.csdn.net/a6822342/article/details/105060679