python pandas教程,python的loc函數_如何在pandas中使用loc、iloc函數進行數據索引(入門篇)

 2023-12-12 阅读 28 评论 0

摘要:在數據分析過程中,很多時候我們需要從數據表中提取出我們需要的部分,而這么做的前提是我們需要先索引出這一部分數據。今天我們就來探索一下,如何在pandas中使用loc函數和iloc函數索引數據。今天我們直接從例子出發:import pandas as pdimport nu

在數據分析過程中,很多時候我們需要從數據表中提取出我們需要的部分,而這么做的前提是我們需要先索引出這一部分數據。今天我們就來探索一下,如何在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

以上便是的內容,感謝大家的細心閱讀,同時歡迎感興趣的小伙伴一起討論、學習,想要了解更多內容的可以看我的其他文章,同時可以持續關注我的動態~

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/196402.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息