Series 是 pandas 中的一维数据结构,类似于带标签的数组。每个元素都有对应的索引(默认从 0 开始),支持自定义索引标签。
创建 Series
通过列表创建:
import pandas as pd
data = [10, 20, 30]
s = pd.Series(data)
通过字典创建(自动将键作为索引):
data = {'a': 10, 'b': 20, 'c': 30}
s = pd.Series(data)
指定索引标签(长度需与数据一致):
s = pd.Series([10, 20, 30], index=['x', 'y', 'z'])
iloc 和 loc 的区别
iloc 和 loc 是 Pandas 中用于数据索引的两种方法,但它们的用途和操作方式有显著差异。
iloc
- 基于整数位置索引,遵循 Python 的切片规则(左闭右开)。
- 语法:
df.iloc[行索引, 列索引],索引可以是单个整数、列表或切片。 - 示例:
df.iloc[0:3, 1:4] # 选择第0到2行,第1到3列 df.iloc[[0, 2], [1, 3]] # 选择第0和第2行,第1和第3列
loc
- 基于标签索引,包含起始和结束位置(左闭右闭)。
- 语法:
df.loc[行标签, 列标签],标签可以是行/列名、列表或切片。 - 示例:
df.loc['row1':'row3', 'colA':'colC'] # 选择行标签从row1到row3,列标签从colA到colC df.loc[['row1', 'row3'], ['colA', 'colC']] # 选择特定行和列
关键区别
-
索引类型
iloc:仅接受整数位置。loc:接受行/列标签(如字符串、时间戳)。
-
切片行为
iloc:右边界不包含(如0:3包含0,1,2)。loc:右边界包含(如'a':'c'包含a,b,c)。
-
布尔索引
两者均支持布尔数组,但loc更常用于条件筛选:df.loc[df['colA'] > 0] # 筛选colA大于0的行
使用
- 用
iloc当数据顺序固定且需按位置访问时(如处理无标签的纯数值数据)。 - 用
loc当需要按标签筛选或处理带名称的列/行时(如时间序列数据)。在 Pandas 中,Series 之间的四则运算(加、减、乘、除)可以通过直接使用运算符或对应方法实现,运算时会按索引对齐。以下是具体操作方法和注意事项:
基本运算示例
假设有两个 Series:
import pandas as pd s1 = pd.Series([10, 20, 30], index=['a', 'b', 'c']) s2 = pd.Series([1, 2, 3], index=['a', 'b', 'c'])加法
直接使用+运算符或add()方法:s1 + s2 # 或 s1.add(s2) # 输出:a=11, b=22, c=33减法
使用-运算符或sub()方法:s1 - s2 # 或 s1.sub(s2) # 输出:a=9, b=18, c=27乘法
使用*运算符或mul()方法:s1 * s2 # 或 s1.mul(s2) # 输出:a=10, b=40, c=90除法
使用/运算符或div()方法:s1 / s2 # 或 s1.div(s2) # 输出:a=10.0, b=10.0, c=10.0通过
fill_value参数指定缺失值的默认值:s1.add(s3, fill_value=0) # 输出:a=11.0, b=20.0, c=30.0, d=2.0
1095

被折叠的 条评论
为什么被折叠?



