Series的使用:
1. Series的简单使用
data = pd.Series([0.25, 0.5, 0.75, 1.0]) print(data) print(data.values) print(data.index) print(data[1]) print(data[1:3])
2. Series对象与Numpy数组的不同之处
# 2.1 索引可以是任意类型 data = pd.Series([0.25, 0.5, 0.75, 1.0], index=['a', 'b', 'c', 'd']) print(data['b']) print(data["a": "c"]) # 2.2 索引可以不是连续的、可以不按顺序 data = pd.Series([0.25, 0.5, 0.75, 1.0], index=[2, 3, 5, 7]) print(data) print(data[5]) # 2.3 可以将series看做是特殊的字典 population_dict = { "California": 3833251, "Texas": 26448193, "New York": 19651127, "Florida": 19552860, "Illinois": 12882135 } population = pd.Series(population_dict) print(population) # 像字典一样获取数据 print(population['California']) # 也支持像list一样的切片 print(population["California": "Illinois"])
3. 创建Series对象:
# 3.创建Series对象 # 创建形式: pd.Series(data, index=index) # 3.1 data: 列表或者numpy数组, index默认是整数序列 data = pd.Series([2, 4, 6]) print(data) # 3.2 data是一个标量, 会按照index的数量重复填充 data = pd.Series(5, index=[100, 200, 300]) print(data) # 3.3 data是一个字典,index默认是字典的键 data = pd.Series({2: 'a', 1: 'b', 3: 'c'}) print(data) # 可以通过显示指定索引,来筛选用于创建Series的数据, 创建时只会保留显示指定索引的键值对 data = pd.Series({2: 'a', 1: 'b', 3: 'c'}, index=[3, 2]) print(data)
4. Series对象的数据选择方法
# 4. Series数据选择方法 data = pd.Series([0.25, 0.5, 0.75, 1.0], index=list('abcd')) print(data) # 4.1 Series对象提供了键值对的映射, 可以像字典一样使用 print(data['b']) print('a' in data) print(data.keys()) print(list(data.items())) # 使用字典类似的语法调整数据 data['e'] = 1.25 print(data) # 4.2 将Series对象看做是一堆数组 # 显式索引作为切片: 含头含尾 print(data['a': 'c']) # 隐式索引作为切片: 含头不含尾 print(data[0:2]) # 掩码 位运算的方式 print(data[(data > 0.3) & (data < 0.8)]) # 指定索引列表 print(data[['a', 'e']]) # 4.3 索引器: loc, iloc, ix data = pd.Series(['a', 'b', 'c'], index=[1, 3, 5]) print(data) # 当显式索引和隐式索引都是整数时 # 取值操作是显式索引 print(data[1]) # 切片操作时隐式索引 print(data[1:3]) # 上述这两种操作,很容易会混淆,loc和iloc就可以解决这个问题 # loc和iloc不是Series对象的函数方法,只是暴露了切片接口的属性 # 4.3.1 loc, 表示取值和切片都是显式的 print(data.loc[1]) print(data.loc[1:3]) # 4.3.2 iloc, 表示取值和切片都是隐式的 print(data.iloc[1]) print(data.iloc[1:3]) # 4.3.3 ix等价于标准python列表[]式的取值方式 print(data.ix[1]) print(data.ix[1:3]) print(data[1:3])
5. Series对象的一些特性
# 5. Series的一些特性 # 5.1 矢量化操作 s = pd.Series(np.random.randn(5), index=['a', 'b', 'c', 'd', 'e']) print(s + s) print(s * 2) print(np.exp(s)) # 5.2 标签对齐 print(s[:-1] + s[1:])