📜  Python Pandas-系列

📅  最后修改于: 2020-11-06 05:36:04             🧑  作者: Mango


系列是一维标记的数组,能够保存任何类型的数据(整数,字符串,浮点数, Python对象等)。轴标签统称为索引。

熊猫系列

熊猫系列可以使用以下构造函数创建-

pandas.Series( data, index, dtype, copy)

构造函数的参数如下-

Sr.No Parameter & Description
1

data

data takes various forms like ndarray, list, constants

2

index

Index values must be unique and hashable, same length as data. Default np.arrange(n) if no index is passed.

3

dtype

dtype is for data type. If None, data type will be inferred

4

copy

Copy data. Default False

可以使用各种输入(例如-

  • 数组
  • 辞典
  • 标量值或常数

创建一个空系列

可以创建的基本系列是空系列。

#import the pandas library and aliasing as pd
import pandas as pd
s = pd.Series()
print s

输出如下-

Series([], dtype: float64)

从ndarray创建系列

如果数据是ndarray,则传递的索引必须具有相同的长度。如果没有传递索引,则默认情况下索引将是range(n) ,其中n是数组长度,即[0,1,2,3…。范围(len(array))-1]。

例子1

#import the pandas library and aliasing as pd
import pandas as pd
import numpy as np
data = np.array(['a','b','c','d'])
s = pd.Series(data)
print s

输出如下-

0   a
1   b
2   c
3   d
dtype: object

我们没有传递任何索引,因此默认情况下,它分配的索引范围为0到len(data)-1 ,即0到3。

例子2

#import the pandas library and aliasing as pd
import pandas as pd
import numpy as np
data = np.array(['a','b','c','d'])
s = pd.Series(data,index=[100,101,102,103])
print s

输出如下-

100  a
101  b
102  c
103  d
dtype: object

我们在这里传递了索引值。现在,我们可以在输出中看到自定义的索引值。

从字典创建系列

可以将dict作为输入传递,并且如果未指定索引,则按排序顺序获取字典键以构造索引。如果指数通过,在对应于索引标签数据的值将被拉出。

例子1

#import the pandas library and aliasing as pd
import pandas as pd
import numpy as np
data = {'a' : 0., 'b' : 1., 'c' : 2.}
s = pd.Series(data)
print s

输出如下-

a 0.0
b 1.0
c 2.0
dtype: float64

观察-字典键用于构造索引。

例子2

#import the pandas library and aliasing as pd
import pandas as pd
import numpy as np
data = {'a' : 0., 'b' : 1., 'c' : 2.}
s = pd.Series(data,index=['b','c','d','a'])
print s

输出如下-

b 1.0
c 2.0
d NaN
a 0.0
dtype: float64

观察-索引顺序保持不变,丢失的元素用NaN(非数字)填充。

从标量创建系列

如果数据是标量值,则必须提供索引。该值将重复以匹配索引的长度

#import the pandas library and aliasing as pd
import pandas as pd
import numpy as np
s = pd.Series(5, index=[0, 1, 2, 3])
print s

输出如下-

0  5
1  5
2  5
3  5
dtype: int64

从具有位置的系列访问数据

ndarray中的数据类似,可以访问该系列中的数据。

例子1

检索第一个元素。众所周知,数组的计数从零开始,这意味着第一个元素存储在位置,依此类推。

import pandas as pd
s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e'])

#retrieve the first element
print s[0]

输出如下-

1

例子2

检索系列中的前三个元素。如果在其前面插入:,将从该索引开始的所有项目都将被提取。如果使用两个参数(它们之间带有:),则两个索引之间的项目(不包括停止索引)

import pandas as pd
s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e'])

#retrieve the first three element
print s[:3]

输出如下-

a  1
b  2
c  3
dtype: int64

例子3

检索最后三个元素。

import pandas as pd
s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e'])

#retrieve the last three element
print s[-3:]

输出如下-

c  3
d  4
e  5
dtype: int64

使用标签(索引)检索数据

系列就像固定大小的字典一样,可以通过索引标签获取和设置值。

例子1

使用索引标签值检索单个元素。

import pandas as pd
s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e'])

#retrieve a single element
print s['a']

输出如下-

1

例子2

使用索引标签值列表检索多个元素。

import pandas as pd
s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e'])

#retrieve multiple elements
print s[['a','c','d']]

输出如下-

a  1
c  3
d  4
dtype: int64

例子3

如果不包含标签,则会引发异常。

import pandas as pd
s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e'])

#retrieve multiple elements
print s['f']

输出如下-

…
KeyError: 'f'