Python---序列的索引以及切片操作

一、序列

序列是一个用于存储多个值的连续空间,每个值都应对应一个整数的编号,成为索引。

索引分为正向递增索引(0到N-1)和反向递减索引(-1到-N)

示例

s='helloworld'
#正向递增索引
for i in range(0,len(s)):
    print(i,s[i],end='\t\t')

print('\n----------------------------')

#反向递减索引
for i in range(-10,0):
    print(i,s[i],end='\t\t')

结果

二、切片操作的语法结构

序列[start: end: step]

包含开始start,不包含结束end,步长默认为1

示例

s='helloworld'
s1=s[0:5:2]
print(s1)
#省略开始位置,默认从0开始
print(s[:5:1])
#省略开始位置、步长
print(s[:5:])
#省略结束位置
print(s[0::1])
#省略结束位置、步长
print(s[5::])
print(s[5:])
#省略开始位置、结束位置,只写步长
print(s[::2])  #0、2、4、6、8位置
#步长为负数
print(s[::-1])
print(s[-1:-11:-1])

结果

三、序列的相加、相乘操作

#序列相加
s='hello'
s1='world'
print(s+s1)
#序列相乘
print(s*3)

结果

四、操作符

操作符/函数描述说明
x in s如果x是s的元素,结果为True,否则结果为False
x not in s如果x不是s的元素,结果为True,否则结果为False
len(s)序列s中元素的个数(即序列的长度)
max(s)序列s中元素的最大值
min(s)序列s中元素的最小值
s.inside(x)序列s中第一次出现元素x的位置
s.count(x)序列s中出现元素x的总次数

示例

s='helloworld'
print('e在helloworld中存在吗?',('e'in s))
print('v在helloworld中存在吗?',('v'in s))
#not in的使用
print('e在helloworld中不存在吗?',('e'not in s))
print('v在helloworld中不存在吗?',('v'not in s))
#内置函数的使用
print('len();',len(s))
print('max();',max(s))
print('min();',min(s))
#序列对象的方法,使用序列的名称,打点调用
print('s.index();',s.index('o')) #o在s中第一次出现的位置
#print('s.index();',s.index('v')) #v在s中不存在,会报错
print('s.count();',s.count('o')) #o在s中出现的次数

结果

### Python Pandas 索引使用方法 #### 创建 DataFrame 并设置索引 为了更好地理解如何处理索引,在创建 `DataFrame` 的时候可以选择指定列作为行标签即索引。如果未特别指明,默认情况下会自动生成整数类型的索引。 ```python import pandas as pd data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35], 'City': ['New York', 'Los Angeles', 'Chicago']} df = pd.DataFrame(data) # 设置 City 列为索引 df.set_index('City', inplace=True) print(df) ``` #### 访问带有多重索引的数据结构 对于具有复杂层次化索引的数据集,可以通过 `.loc[]`, `.iloc[]` 或者更高级的选择器来进行访问。特别是当面对多层索引(`MultiIndex`)时,`.xs()` 方法允许提取特定级别的子集而无需遍历整个表格。 ```python arrays = [['bar', 'bar', 'baz', 'baz'], ['one', 'two', 'one', 'two']] index = pd.MultiIndex.from_arrays(arrays, names=('first', 'second')) s = pd.Series([1.0, 2.0, 3.0, 4.0], index=index) # 获取 first 层等于 bar 的所有元素 result_bar = s.xs('bar', level='first') print(result_bar) ``` #### 对带有 MultiIndex 的数据框应用聚合操作 在拥有多个维度的情况下,可能希望基于某些级别上的唯一组合计算统计数据。这通常涉及到 `groupby()`, 结合其他函数如 `sum()`, `mean()`, 和 `size()` 来实现期望的结果。 ```python df_multi = df.copy() df_multi.index = pd.MultiIndex.from_product([[‘East’, ‘West’], df_multi.index]) # 按照第一个层级分组求平均年龄 average_age_by_region = df_multi.groupby(level=0)['Age'].mean() print(average_age_by_region) ``` #### 将分类变量转化为虚拟/指示变量 有时需要将类别型特征编码成数值形式以便于后续分析工作。此时可利用 `pd.get_dummies()` 函数轻松完成此任务[^2]。 ```python dummies_cities = pd.get_dummies(df.reset_index(), columns=['City']) print(dummies_cities) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值