Pandas Series

Pandas Series 首页 / Pandas入门教程 / Pandas Series

Pandas Series可以定义为一维数组,能够存储各种数据类型。无涯教程可以使用" Series"方法轻松地将列表,元组和字典转换为Series。Series的行标签称为索引。一个Series不能包含多列。它具有以下参数:

  • data     -  它可以是任何列表,字典或标量值。
  • index   -  索引的值应唯一且可哈希。它必须与数据长度相同。如果不传递任何索引,则将使用默认的 np.arrange(n)
  • dtype   -  它是指Series的数据类型。
  • copy     -  它用于复制数据。

创建Series

无涯教程可以通过两种方式创建Series:

  1. 创建一个空Series
  2. 使用输入创建Series

创建一个空Series

可以轻松地在Pandas中创建一个空Series,这意味着它将没有任何价值。

用于创建空序列的语法:

无涯教程网

<series object> = pandas.Series()

以下示例创建了一个空Series类型对象,该对象没有值,并且具有默认数据类型,即 float64

import pandas as pd
x = pd.Series()
print (x)

输出

Series([], dtype: float64)

使用输入创建Series

可以使用各种输入来创建Series:

  • 数组(Array)
  • 字典(Dict)
  • 标量值(Scalar value)

从数组(array)创建Series:

在创建Series之前,首先,必须导入 numpy 模块,然后在程序中使用array()函数。如果数据是ndarray,则传递的索引必须具有相同的长度。

如果不传递索引,则默认传递 range(n)的索引,其中n定义数组的长度,即[0,1,2,.... range(len(array))-1 ]。

import pandas as pd
import numpy as np
info = np.array(['P','a','n','d','a','s'])
a = pd.Series(info)
print(a) 

输出

0    P
1    a
2    n
3    d
4    a
5    s
dtype: object

根据字典(dict)创建Series

无涯教程也可以根据字典创建Series。 如果将字典对象作为输入传递且未指定索引,则将按排序顺序获取字典键以构造索引

如果传递了索引,则将从字典中提取与索引中特定标签相对应的值。

#import the pandas library 
import pandas as pd
import numpy as np
info = {'x' : 0., 'y' : 1., 'z' : 2.}
a = pd.Series(info)
print (a)

输出

x     0.0
y     1.0
z     2.0
dtype: float64

使用标量创建Series:

如果采用标量值,则必须提供索引。标量值将被重复以匹配索引的长度。

#import pandas library 
import pandas as pd
import numpy as np
x = pd.Series(4, index=[0, 1, 2, 3])
print (x)

输出

0      4
1      4
2      4
3      4
dtype: int64

访问Series

创建Series类型对象后,就可以访问其索引,数据,甚至单个元素。

与ndarray中的数据类似,可以访问Series中的数据。

import pandas as pd
x = pd.Series([1,2,3],index = ['a','b','c'])
#retrieve the first element
print (x[0])

输出

1 

Series对象属性

Series属性定义为与Series对象有关的任何信息,例如大小,数据类型。等。以下是一些可用于获取有关Series对象的信息的属性:

属性说明
Series.index 定义Series的索引。
Series.shape 它返回数据形状的元组。
Series.dtype 它返回数据的数据类型。
Series.size 它返回数据的大小。
Series.empty 如果Series对象为空,则返回True,否则返回false。
Series.hasnans 如果有任何NaN值,则返回True,否则返回false。
Series.nbytes 它返回数据中的字节数。
Series.ndim 它返回数据中的维数。
Series.itemsize 它返回大小项目的数据类型。

检索Series对象的索引数组

无涯教程可以使用属性索引和值来检索现有Seri​​es对象的索引数组和数据数组。

import numpy as np 
import pandas as pd 
x=pd.Series(data=[2,4,6,8]) 
y=pd.Series(data=[11.2,18.6,22.5], index=['a','b','c']) 
print(x.index) 
print(x.values) 
print(y.index) 
print(y.values)

输出

RangeIndex(start=0, stop=4, step=1)
[2 4 6 8]
Index(['a', 'b', 'c'], dtype='object')
[11.2 18.6 22.5]

检索类型(dtype)和类型大小(itemsize)

可以将Series对象的属性dtype与<objectname> dtype一起使用,以检索Series对象的单个元素的数据类型,可以使用itemsize属性显示分配给每个数据项的字节数。

import numpy as np 
import pandas as pd 
a=pd.Series(data=[1,2,3,4]) 
b=pd.Series(data=[4.9,8.2,5.6], 
index=['x','y','z']) 
print(a.dtype) 
print(a.itemsize)  
print(b.dtype) 
print(b.itemsize)

输出

int64
8
float64
8

检索Shape

Series对象的形状定义元素的总数,包括缺失值或空值(NaN)。

import numpy as np 
import pandas as pd 
a=pd.Series(data=[1,2,3,4]) 
b=pd.Series(data=[4.9,8.2,5.6],index=['x','y','z']) 
print(a.shape) 
print(b.shape)

输出

(4,)
(3,)

检索尺寸,大小和字节数

import numpy as np 
import pandas as pd 
a=pd.Series(data=[1,2,3,4]) 
b=pd.Series(data=[4.9,8.2,5.6],
index=['x','y','z']) 
print(a.ndim, b.ndim) 
print(a.size, b.size) 
print(a.nbytes, b.nbytes)

输出

1 1
4 3
32 24

检查Empty和NaN

要检查Series对象是否为空,可以使用 empty属性。同样,要检查Series对象是否包含某些NaN值,可以使用 hasans 属性。

import numpy as np 
import pandas as pd 
a=pd.Series(data=[1,2,3,np.NaN]) 
b=pd.Series(data=[4.9,8.2,5.6],index=['x','y','z']) 
c=pd.Series() 
print(a.empty,b.empty,c.empty) 
print(a.hasnans,b.hasnans,c.hasnans) 
print(len(a),len(b)) 
print(a.count( ),b.count( ))

输出

False   False   True
True    False   False
4   3
3   3

Series函数

Series中使用的一些函数如下:

函数说明
Pandas Series.map()映射具有公共列的两个Series的值。
Pandas Series.std()计算给定数字集,DataFrame列和行的标准偏差。
Pandas Series.to_frame()将Series对象转换为数据框。
pandasSeries.value_counts()返回包含唯一值计数的Series。

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

技术与商业案例解读 -〔徐飞〕

从0开始学大数据 -〔李智慧〕

黄勇的OKR实战笔记 -〔黄勇〕

如何看懂一幅画 -〔罗桂霞〕

恋爱必修课 -〔李一帆〕

大厂设计进阶实战课 -〔小乔〕

JavaScript进阶实战课 -〔石川〕

AI大模型企业应用实战 -〔蔡超〕

工程师个人发展指南 -〔李云〕

好记忆不如烂笔头。留下您的足迹吧 :)