#### 切片
切片的概念同前面Series中说到的切片一样,当我们要获取**连续的**多行或者多列数据的时候考虑使用切片。
切片也是获取多行或者多列数据的一种方式。
代码展示(大家可以注释其他的,逐个演示哦):
```python
# 连续多行获取
row_list1 = data.loc['北京市':'吉林省']
print(row_list1)
row_list2 = data['北京市':'吉林省':2]
print(row_list2)
# 隐式连续多行
row_list3 = data.iloc[3:10]
print(row_list3)
# 隐式多列获取 (连续的列)
col_list2 = data.iloc[:,2:6]
print(col_list2)
# 指定步长
col_list3 = data.iloc[:,2:10:2]
print(col_list3)
# 指定行列和步长
data1 = data.iloc[2:15:2:2:10:3]
print(data1)
```
另外loc还可以支持bool列表的形式,我们使用一个简单的数据给大家展示。
```python
df = pd.DataFrame([[1, 2, 3,4], [4, 5, 6,7]], index=['row0', 'row1'], columns=['col0', 'col1', 'col2','col3'])
df.loc[[True,False]]
```
结果:
当然还可以有条件的获取,指定的行或者列。代码如下:
```python
df = pd.DataFrame([[1, 2, 3,4], [4, 5, 6,7], [8, 9, 10,11]], index=['row0', 'row1','row2'], columns=['col0', 'col1', 'col2','col3'])
df.loc[df['col1']>=5] # 获取col1列数值大于5的行
# df.loc[:,df.loc['row1']>5] # 获取row1值大于5的列
```
问题来啦!如果获取北京市2017年第1季度结婚登记的结婚数据如何获取呢?那就是元素获取了。
我们给大家分了如下几种获取方式:
> 先获取行在获取列,如:df.loc\["北京市"]["2017年第1季度结婚登记"]
>
> 先获取列在获取行,如:df\["2017年第1季度结婚登记"]["北京市"]
>
> 二维形式进行获取单个值,如:df.loc["北京市","2017年第1季度结婚登记"] 或者 df.iloc[行隐式索引,列隐式索引]
```
data.loc["北京市"]["2017年第1季度结婚登记"]
# data["2017年第1季度结婚登记"]["北京市"]
# data.loc["北京市","2017年第1季度结婚登记"]
```
总结: loc和iloc函数都是用来选择某行/列的,iloc与loc的不同是:iloc是按照行/列索引所在的位置来选取数据,参数只能是整数。而loc是按照索引名称来选取数据,参数类型依索引类型而定;
更多关于Python培训的问题,欢迎咨询千锋教育在线名师,如果想要了解我们的师资、课程、项目实操的话可以点击咨询课程顾问,获取试听资格来试听我们的课程,在线零距离接触千锋教育大咖名师,让你轻松从入门到精通。
注:本文部分文字和图片来源于网络,如有侵权,请联系删除。版权归原作者所有!