python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > pandas的Series实例

pandas中Series的代码实例解析

作者:程序~源

这篇文章主要介绍了pandas中Series的代码实例解析,Series序列,是一种一维的结构,类似于一维列表和ndarray中的一维数组,但是功能比他们要更为强大,Series由两部分组成:索引index和数值values,需要的朋友可以参考下

pandas中Series的创建

引用数据库

import pandas as pd
s=pd.Series( data, index, dtype, copy,name)
参数名称描述
data输入的数据,可以是列表、常量、ndarray 数组等。
index索引值必须是惟一的,如果没有传递索引,则默认为 np.arrange(n)。
dtypedtype表示数据类型,如果没有提供,则会自动判断得出。
copy表示对 data 进行拷贝,默认为 False。
name接收string或list。表示Series对象的名称。默认为None

1)用python中的列表list创建:

import pandas as pd
my_list=[1,2,3,4]
my_Series=pd.Series(my_list)
print(my_list)

输出结果如下:

0    1
1    2
2    3
3    4
dtype: int64

2)用numpy数组创建

import pandas as pd
import numpy as np
my_array=np.array([1,2,3,4])
s=pd.Series(my_array)
print(s)

输出结果如下:

0    1
1    2
2    3
3    4
dtype: int32

3)用python中的字典dict创建:

import pandas as pd
data = {'a' : 0., 'b' : 1., 'c' : 2.}
s = pd.Series(data)
print(s)

输出结果如下:

a 0.0
b 1.0
c 2.0
dtype: float64

4)标量创建Series对象:

如果 data 是标量值,则必须提供索引,示例如下:

import pandas as pd
s = pd.Series(5, index=[0, 1, 2, 3])
print(s)

输出如下:

0  5
1  5
2  5
3  5
dtype: int64

5)为index参数传递索引:

以上面的dict方法举例:

import pandas as pd
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值

pandas中Series的访问

# 访问Series中数据的两种方法
import pandas as pd
s1 = pd.Series([ 75, 90, 61],index=['张三', '李四', '陈五'])
print(s1[0])             #通过元素储存位置访问
print(s1['张三'])         #通过指定索引访问
# 结果均为 75

1)切片操作

数据切片的概念源于Numpy数组,Series对象使用类似NumPy中ndarray的数据访问方法实现切片操作。

#Series的切片操作
import pandas as pd
s1 = pd.Series([ 75, 90, 61, 59],index=['a', 'b', 'c', 'd']) 
s1[1:3]

2) 通过bool数组访问Series数据

import pandas as pd
import numpy as np
my_array=np.array([1,2,3,4])
s=pd.Series(my_array,['a','b','c','d'])
print(s)
print(s[s.index>'a'])

输出:

a    1
b    2
c    3
d    4
dtype: int32
b    2
c    3
d    4
dtype: int32

3)数据修改

可以直接通过赋值的方法修改Series中的对应值。

# 修改Series中的值
import pandas as pd
s1 = pd.Series([ 75, 90, 61],index=['张三', '李四', '陈五'])
s1['张三'] = 60         #通过指定索引访问
s1[1] = 60            #通过元素储存位置访问
print(s1)

输出数据:

张三    60
李四    60
陈五    61
dtype: int64

4)算术运算

Pandas会根据索引index索引对相应数据进行计算。如代码所示,可以直接对Series结构进行加减乘除运算符,当出现index不匹配的情况时会输出NaN。

import pandas as pd
sr1 = pd.Series([1, 2, 3, 4],['a','b','c','d'])
sr2 = pd.Series([1, 5, 8, 9],['a','c','e','f'])
print(sr2 - sr1)

输出:

a    0.0
b    NaN
c    2.0
d    NaN
e    NaN
f    NaN
dtype: float64

pandas中Series的常用属性

名称属性
axes以列表的形式返回所有行索引标签。
dtype返回对象的数据类型。
empty返回一个空的 Series 对象。
ndim返回输入数据的维数。
size返回输入数据的元素数量。
values以 ndarray 的形式返回 Series 对象。
index返回一个RangeIndex对象,用来描述索引的取值范围。
import pandas as pd
import numpy as np
s = pd.Series(np.random.randn(6))
print(s)
print("输出series中数据")
print(s.values)

输出:

0   -0.502100
1    0.696194
2   -0.982063
3    0.416430
4   -1.384514
5    0.444303
dtype: float64
输出series中数据
[-0.50210028  0.69619407 -0.98206327  0.41642976 -1.38451433  0.44430257]

import pandas as pd
import numpy as np
s = pd.Series(np.random.randn(5))
print ("The axes are:")
print(s.axes)

输出:

The axes are:
[RangeIndex(start=0, stop=5, step=1)]

Series常用方法

1)统计方法

2)追加Series和插入单个值

类似list,通过append方法能够在原Series上插入(追加)新的Series。若只在原Series上插入单个值,则采用赋值方式即可

import pandas as pd
list1 = [0, 1, 2, 3, 4]
series = pd.Series(list1, index = ['a', 'b', 'c', 'd', 'e'])
series1 = pd.Series([4, 5], index = ['f', 'g'])
# 追加Series
print('在series插入series1后为:\n', series.append(series1))

输出:

在series插入series1后为:
a    3
b    1
c    2
d    3
e    4
f    4
g    5
dtype: int64

3)删除Series元素

import pandas as pd
list1 = [0, 1, 2, 3, 4]
series = pd.Series(list1, index = ['a', 'b', 'c', 'd', 'e'])
series.drop('e', inplace = True)
print( series)

输出:

a    0
b    1
c    2
d    3
dtype: int64

4)unique()与nunique()的用法

unique()返回去重后的元素值

import pandas as pd
list1 = [0, 1, 2, 4, 4]
series = pd.Series(list1, index = ['a', 'b', 'c', 'd', 'e'])
print(series.unique())

输出:

[0 1 2 4]

nunique()返回去重后的元素个数

import pandas as pd
list1 = [0, 1, 2, 4, 4]
series = pd.Series(list1, index = ['a', 'b', 'c', 'd', 'e'])
print(series.nunique())

输出:

4

value_counts(),求不同元素的个数

import pandas as pd
list1 = [0, 1, 2, 4, 4]
series = pd.Series(list1, index = ['a', 'b', 'c', 'd', 'e'])
print(series.value_counts())

输出:

4    2
0    1
1    1
2    1
dtype: int64

value_counts(),求不同元素的个数

import pandas as pd
list1 = [0, 1, 2, 4, 4]
series = pd.Series(list1, index = ['a', 'b', 'c', 'd', 'e'])
print(series.value_counts())

输出:

4    2
0    1
1    1
2    1
dtype: int64

到此这篇关于pandas中Series的代码实例解析的文章就介绍到这了,更多相关pandas的Series实例内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文