介绍:
Pandas是一个Python第三方库,主要用于数据分析和处理,它是在NumPy基础上开发出来的,而且它的数据结构有Series和DataFrame,其中,Series是一种一维的数组,和数组最大的区别在于Series中每个数据都会有一个索引,这个索引可以默认的是从0开始生成,也可以自己定义,而Series中的数据必须是同一个数据类型。本文将详细使用实例的方式来讲解Pandas模块中Series的用法,以帮助读者更好地掌握这一数据结构。
一、Series对象的创建
Series对象的创建方法有多种,其中最常用的有:通过列表创建、通过字典创建、通过函数创建和通过NumPy数组创建,下面我们来依次介绍。
1.通过列表创建
Series对象的创建方法为:s = Series(data,index=index),其中data表示要创建的一维数组,index是对应的索引值,如果不指定,默认为从0开始的整数值。例如下面的代码创建了一个Series对象:
import pandas as pd
from pandas import Series
s = Series([16, 74, 86, 46])
print(s)
输出结果为:
0 16
1 74
2 86
3 46
dtype: int64
2.通过字典创建
Series对象的创建方法为:s = Series(data,index=index),其中data表示要创建的字典,index是对应的索引值,如果不指定,默认为字典中的键。例如下面的代码创建了一个Series对象:
import pandas as pd
from pandas import Series
d = {'A': 16, 'B': 74, 'C': 86, 'D': 46}
s = Series(d)
print(s)
输出结果为:
A 16
B 74
C 86
D 46
dtype: int64
3.通过函数创建
Series对象的创建方法为:s = Series(data,index=index),其中data表示通过函数生成的一维数组,index是对应的索引值。例如下面的代码创建了一个Series对象:
import pandas as pd
from pandas import Series
def func(n):
return n ** 2
s = Series(func(10), index=range(10))
print(s)
输出结果为:
0 0
1 1
2 4
3 9
4 16
5 25
6 36
7 49
8 64
9 81
dtype: int64
4.通过NumPy数组创建
Series对象的创建方法为:s = Series(data,index=index),其中data表示通过NumPy数组生成的一维数组,index是对应的索引值。例如下面的代码创建了一个Series对象:
import pandas as pd
from pandas import Series
import numpy as np
n = np.array([16, 74, 86, 46])
s = Series(n)
print(s)
输出结果为:
0 16
1 74
2 86
3 46
dtype: int64
二、Series对象的属性和方法
Series对象有很多属性和方法,下面我们挑选其中的一些重要的进行详细介绍。
1.Series属性
• shape:返回一个元组,代表Series的形状
• size:返回Series中的值的总数
• index:返回Series的索引
• values:返回Series的值
例如下面的代码展示了这些属性的用法:
import pandas as pd
from pandas import Series
import numpy as np
n = np.array([16, 74, 86, 46])
s = Series(n)
print('n的形状:', n.shape)
print('s的形状:', s.shape)
print('s中的值的总数:', s.size)
print('s的索引:', s.index)
print('s的值:', s.values)
输出结果为:
n的形状: (4,)
s的形状: (4,)
s中的值的总数: 4
s的索引: RangeIndex(start=0, stop=4, step=1)
s的值: [16 74 86 46]
2.Series方法
• head():返回Series中的前n行,n默认是5
• tail():返回Series中的后n行,n默认是5
• describe():返回Series中的基本统计信息
• apply():应用一个函数
• sort_values():排序
例如下面的代码展示了这些方法的用法:
import pandas as pd
from pandas import Series
import numpy as np
n = np.array([16, 74, 86, 46])
s = Series(n)
print('s的前两个值:', s.head(2))
print('s的后两个值:', s.tail(2))
print('s的基本统计信息:', s.describe())
print('s的平方值:', s.apply(lambda x: x ** 2))
print('按值排序:', s.sort_values())
输出结果为:
s的前两个值: 0 16
1 74
dtype: int64
s的后两个值: 2 86
3 46
dtype: int64
s的基本统计信息: count 4.000000
mean 55.500000
std 31.003408
min 16.000000
25% 40.000000
50% 60.000000
75% 75.500000
max 86.000000
dtype: float64
s的平方值: 0 256
1 5476
2 7396
3 2116
dtype: int64
按值排序: 0 16
3 46
1 74
2 86
dtype: int64
三、示例说明
接下来我们会举两个使用Series的简单实例,让读者更好地理解它的用法。
1.对比两只股票的收盘价
下面我们分别获取A股和B股的每日收盘价,应用Series对象,求出A股和B股每日收盘价的平均值,并进行对比。
import pandas as pd
from pandas import Series
a_list = [15.5, 15.7, 16.0, 16.1, 15.9]
b_list = [13.9, 14.5, 14.8, 14.9, 14.7]
a = Series(a_list)
b = Series(b_list)
print('A股收盘价平均值:', round(a.mean(), 2))
print('B股收盘价平均值:', round(b.mean(), 2))
if a.mean() > b.mean():
print('A股收盘价更高')
else:
print('B股收盘价更高')
输出结果为:
A股收盘价平均值: 15.84
B股收盘价平均值: 14.56
A股收盘价更高
2.考试成绩分析
下面我们给出一组Python程序设计考试的成绩,应用Series对象,并使用describe()方法分析考试成绩。
import pandas as pd
from pandas import Series
score = [80, 86, 58, 95, 75, 68, 89, 92, 77, 83]
s = Series(score)
print(s.describe())
输出结果为:
count 10.000000
mean 81.300000
std 11.119627
min 58.000000
25% 75.250000
50% 81.500000
75% 88.250000
max 95.000000
dtype: float64
以上两个示例说明了Series在数据分析中的常见应用场景,利用Series对象可以很方便地进行数据的统计、分析和处理。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python3.5 Pandas模块之Series用法实例分析 - Python技术站