在數據分析過程中,很多時候我們需要從數據表中提取出我們需要的部分,而這么做的前提是我們需要先索引出這一部分數據。今天我們就來探索一下,如何在pandas中使用loc函數和iloc函數索引數據。
今天我們直接從例子出發:
import pandas as pd
import numpy as np
df = pd.DataFrame({'城市':['北京','廣州', '天津', '上海', '杭州', '成都', '澳門', '南京'],
'收入':[10000, 10000, 5000, 5002, 40000, 50000, 8000, 5000],
'年齡':[50, 43, 34, 40, 25, 25, 45, 32]})
df.set_index([["一","二","三","四","五","六","七","八"]],inplace=True)
df
一、使用loc函數索引數據
(注意~loc函數主要通過 行標簽 索引行數據)
1、索引行標簽是“一”的這一行數據
df.loc["一"]
2、我們再來看另一種情況:
df.loc["一":"二"]
是不是很好奇!為什么會輸出兩個結果,而不是“前閉后開”只輸出一個結果呢?
敲小黑板,這一點很重要了~
使用loc函數,索引的是字符串,前后都要取,是屬于“前閉后閉”的情況。
3、索引“北京”這一個數據:
可以看到,在這里我們通過指定行索引和索引,取到了“北京”這一數據。
4、如何獲取一個2*2的數據集(前兩行前兩列所交的四個數據為例):
5、索引“年齡”這一列數據:
注意看了~對于列標簽來說,上面這樣用是不允許的。在索引行的時候可以這么用。
正確的做法是:
df.loc[:,"年齡"]
要索引多列時也是一樣的用法:
df.loc[:,"城市":"收入"]
二、使用iloc函數索引數據
(注意~iloc函數主要通過 行號 索引行數據)
而且,iloc函數索引的數據是int整型,因此是Python默認的前閉后開。注意只能說int型,也就是數字,輸入字符的話是會報錯的。
1、利用iloc索引第一行:
從上面三種表達,大家可以明確看到,iloc函數索引的是int型的數字,是屬于前閉后開的。(注意~索引都是默認從0開始的~)
2、利用iloc函數索引多行:
假如這個時候我們想索引一下奇數行:
可以看到,當我們直接輸入行號時,是會報錯的。
正確的做法是:
df.iloc[[0,2,4,6]]
可以看到,在正確的做法中,我們需要鍵入一個列表,而不是一串數字~
當然了,我們可以用更智能的方法:
df.iloc[0:8:2]
3、利用iloc函數索引多列:
比如這個時候我們想索引一下收入列和年齡列,正確的做法是:
df.iloc[:,1:3]
或者是:
df.iloc[:,[1,2]]
4、利用iloc函數索引一個2*2的數據集:(前兩行前兩列所交的四個數據為例)
df.iloc[[0,1],[0,1]]
是不是和python的切片有點像呢?大家可不要將兩者弄混了哦~
忘記的同學可以看這里溫習一下:偵探L:如何在python中利用切片表達式進行切片?zhuanlan.zhihu.com
以上便是的內容,感謝大家的細心閱讀,同時歡迎感興趣的小伙伴一起討論、學習,想要了解更多內容的可以看我的其他文章,同時可以持續關注我的動態~
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态