Series基础操作-「数据分析-2」

Series基础操作-「数据分析-2」
最新回答
心游你心

2023-03-05 19:38:12

Series是Pandas中带有标签的一维数组,支持多种数据类型,其核心操作包括创建、索引、增删改查等。以下是详细说明:

一、Series的创建
  1. 由字典创建字典的键(key)自动成为索引,值(value)成为数据:

    dic = {'a': 1, 'b': 2, 'c': 3}s = pd.Series(dic)# 输出:# a 1# b 2# c 3
  2. 由数组创建

    默认索引为从0开始的数字:

    arr = np.array([1, 2, 3])s = pd.Series(arr)

    自定义索引和类型:

    s = pd.Series(arr, index=['x', 'y', 'z'], dtype=np.float64)
  3. 由标量创建需指定索引,值会重复填充:

    s = pd.Series(10, index=['a', 'b', 'c'])# 输出:# a 10# b 10# c 10
二、Series的索引操作
  1. 位置索引类似列表,通过整数位置访问:

    s = pd.Series([1, 2, 3], index=['a', 'b', 'c'])print(s[0]) # 输出:1
  2. 标签索引通过索引标签访问单个或多个值:

    print(s['a']) # 输出:1print(s[['a', 'b']]) # 输出多值Series
  3. 切片索引

    位置切片(末端不包含):

    print(s[0:2]) # 输出前两个值

    标签切片(末端包含):

    print(s['a':'b']) # 包含'b'
  4. 布尔索引通过条件筛选数据:

    s = pd.Series([10, 20, None, 40])print(s[s > 15]) # 筛选大于15的值print(s[s.isnull()]) # 筛选空值
三、Series的增删改查
  1. 重新索引(Reindex)调整索引顺序,缺失值填充:

    s = pd.Series([1, 2, 3], index=['a', 'b', 'c'])s_new = s.reindex(['c', 'b', 'a', 'd'], fill_value=0)# 输出:# c 3# b 2# a 1# d 0
  2. 对齐操作相同标签的Series会自动对齐计算:

    s1 = pd.Series([1, 2], index=['a', 'b'])s2 = pd.Series([3, 4], index=['b', 'c'])print(s1 + s2) # 输出:a→NaN, b→6, c→NaN
  3. 删除元素

    删除指定标签(返回副本):

    s = pd.Series([1, 2, 3], index=['a', 'b', 'c'])s_dropped = s.drop('a')

    删除多个标签:

    s_dropped = s.drop(['a', 'b'])
  4. 添加元素

    直接通过索引赋值:

    s['d'] = 4 # 新增标签'd'

    合并Series:

    s_new = s.append(pd.Series([5], index=['e']))
  5. 修改元素通过索引直接修改值:

    s['a'] = 100 # 修改单个值s[['b', 'c']] = 200 # 修改多个值
四、其他常用操作
  • 查看数据s.head(2) # 查看前2行s.tail(1) # 查看最后1行
  • 属性检查print(s.index) # 查看索引print(s.values) # 查看值(NumPy数组)
关键注意事项
  1. 索引唯一性:Series的索引应尽量唯一,重复标签可能导致意外行为。
  2. 空值处理:涉及空值的运算结果通常为空,需用fillna()或dropna()处理。
  3. 性能优化:对大型Series操作时,优先使用向量化方法(如布尔索引)而非循环。

通过掌握这些操作,可以高效地处理一维带标签数据,为后续数据分析(如DataFrame操作)奠定基础。