#### 切片
切片的概念同前面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培訓的問題,歡迎咨詢千鋒教育在線名師,如果想要了解我們的師資、課程、項目實操的話可以點擊咨詢課程顧問,獲取試聽資格來試聽我們的課程,在線零距離接觸千鋒教育大咖名師,讓你輕松從入門到精通。
注:本文部分文字和圖片來源于網絡,如有侵權,請聯系刪除。版權歸原作者所有!