pandas中的series数据类型详解

  • Post category:Python

Pandas中的Series数据类型详解

Pandas是一个开源的数据分析和数据处理的库,是Python数据分析的重要工具之一。Series是Pandas中一种常用的数据类型,相当于一维带标签的数组。在本文中,我们将详细讲解Pandas中的Series数据类型,并且通过两个示例来说明。

创建Series

创建Series最基础的方法是传入一个列表,Pandas将自动创建默认的索引:

import pandas as pd

s1 = pd.Series([1, 2, 3, 4, 5])
print(s1)

输出结果为:

0    1
1    2
2    3
3    4
4    5
dtype: int64

我们也可以手动指定一个索引:

s2 = pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e'])
print(s2)

输出结果为:

a    1
b    2
c    3
d    4
e    5
dtype: int64

访问Series

我们可以通过索引访问Series中的元素:

print(s2['a'])
# 输出结果为:1

也可以通过位置访问元素:

print(s2[0])
# 输出结果为:1

可以使用切片来访问多个元素:

print(s2[1:4])
# 输出结果为:
# b    2
# c    3
# d    4
# dtype: int64

修改Series

修改Series中的元素与访问类似,只需要给指定位置或索引赋新值即可:

s2['a'] = 6
print(s2)

输出结果为:

a    6
b    2
c    3
d    4
e    5
dtype: int64

操作Series

对于Series,我们可以像操作数组一样进行操作:

# 求和
print(s2.sum())

# 求均值
print(s2.mean())

# 求最大值
print(s2.max())

# 求最小值
print(s2.min())

# 求标准差
print(s2.std())

以上操作的结果分别为:20、4、6、2、1.4142135623730951。

示例1:统计学生成绩

假设我们有以下学生成绩的Series数据:

scores = pd.Series([90, 85, 92, 88, 93], index=['张三', '李四', '王五', '赵六', '孙七'])

我们可以统计这些学生的平均分、最高分和最低分:

print('平均分:', scores.mean())
print('最高分:', scores.max())
print('最低分:', scores.min())

输出结果为:

平均分: 89.6
最高分: 93
最低分: 85

示例2:股票收益率

假设我们有以下股票每日收盘价的Series数据:

stock_price = pd.Series([10.0, 10.1, 10.2, 10.3, 10.4, 10.5])

我们可以计算这个股票的每日收益率:

daily_return = stock_price.pct_change()

此处使用的pct_change方法计算了每日收益率。我们可以打印出计算结果:

print(daily_return)

输出结果为:

0         NaN
1    0.010000
2    0.009901
3    0.009804
4    0.009709
5    0.009615
dtype: float64

因为第一个元素无法计算收益率,所以它的值为NaN

总结

本文详细讲解了Pandas中的Series数据类型,包括创建Series、访问Series、修改Series和操作Series等常用操作。通过两个示例,我们展示了如何在实际应用中使用Series来分析数据。