pandas索引與賦值操作、排序以及Series排序和DataFrame排序方式
一、pandas索引操作
索引操作,使用索引選取序列和切片選擇數(shù)據(jù),也可以直接使用列名、行名稱,或組合使用
- 直接使用行列索引:行列索引名順序?yàn)橄攘性傩?,使用指定行列索引名,不能使用下?biāo)
- loc[行索引名,列索引名]:先行再列,只能使用指定的行列索引名,不能使用下標(biāo)
- iloc[行,列]:先行再列,只能使用索引下標(biāo)獲取數(shù)據(jù),不能使用指定行列索引名
- 下標(biāo)索引與指定行列索引相結(jié)合:使用index或columns.get_indexer,見案例
代碼如下
import pandas as pd import numpy as np # 數(shù)據(jù)生成代碼 num = np.random.randint(50, 100, (3, 5)) num # 傳入標(biāo)簽索引 column = ['第一列', '第二列', '第三列', '第四列', '第五列'] # 列標(biāo)簽索引 # ind = ['第一行', '第二行', '第三行'] # 行標(biāo)簽索引 ind = ['第_' + str(i) + '_行' for i in range(num.shape[0])] # 行標(biāo)簽索引,num.shape[0]即獲取num數(shù)組的行號,此處為3 data = pd.DataFrame(num, columns=column, index=ind) data ------------------------------------------------------------------- data['第五列']['第_2_行'] # 只能先列再行 data['第_2_行']['第五列'] # 先行再列,報(bào)錯(cuò) data.loc['第_0_行':'第_2_行', '第三列'] # 先行再列,loc只能使用指定行列索引,切取第三列中[0,2]行中的數(shù)據(jù) data.loc[:'第_2_行', '第三列':] # loc只能使用指定行列索引,切取[0,2]行,3-最后一列的數(shù)據(jù) data.iloc[:2, 2:] # iloc只能使用下標(biāo)索引,切取[0,2)行,3-最后一列的數(shù)據(jù)
數(shù)據(jù)生成
操作如下
下標(biāo)索引與指定行列索引相結(jié)合
data.loc[data.index[0:2], ['第二列', '第三列', '第五列']] # 下標(biāo)索引與指定行列索引相結(jié)合 data.iloc[0:2, data.columns.get_indexer(['第二列', '第三列', '第五列'])] # 下標(biāo)索引與指定行列索引相結(jié)合
二、pandas賦值操作
只能對某一列賦值,不能對一行賦值,有兩種方式,直接使用索引或用點(diǎn).索引名,具體如下
代碼如下
import pandas as pd import numpy as np # 數(shù)據(jù)生成代碼 num = np.random.randint(50, 100, (3, 5)) # 傳入標(biāo)簽索引 column = ['第一列', '第二列', '第三列', '第四列', '第五列'] # 列標(biāo)簽索引 # ind = ['第一行', '第二行', '第三行'] # 行標(biāo)簽索引 ind = ['第_' + str(i) + '_行' for i in range(num.shape[0])] # 行標(biāo)簽索引,num.shape[0]即獲取num數(shù)組的行號,此處為3 data2 = pd.DataFrame(num, columns=column, index=ind) data2 ------------------------------------------------------------ data2['第四列'] = 88 # 值可為字符串或漢字 data2 data2.第一列 = 99 # 方式二 data2
生成數(shù)據(jù)
操作如下
三、pandas排序
pandas排序有兩種方式,一種是對索引進(jìn)行排序,另一種是對內(nèi)容進(jìn)行排序
3.1 DataFrame排序
df.sort_values(by=, ascending=)
:單個(gè)鍵(列名)或多個(gè)鍵進(jìn)行排序by
:指定排序參考的鍵ascending
:指定升序或降序ascending=True
:默認(rèn)升序ascending=False
:降序df.sort_index()
:給索引進(jìn)行排序
代碼如下
data2.sort_values(by='第三列') # 默認(rèn)ascending=True,即升序排序 data2.sort_values(by='第三列', ascending=False) # 根據(jù)第三列降序排序 data2.sort_values(by=['第一列', '第四列'], ascending=False) # 根據(jù)多列降序排序 data2.sort_index() # 給索引進(jìn)行排序
操作演示
3.2 Series排序
- series.sort_values(ascending=True):series排序時(shí),只有一列,不需要參數(shù)
- series.sort_index(ascending=):根據(jù)索引排序,ascending指定升序或降序,默認(rèn)升序
代碼如下
data2['第四列'].sort_values() # 默認(rèn)ascending=True,即將第四列升序排序 data2['第四列'].sort_values(ascending=False) # ascending=False,將第四列降序排序 data2['第四列'].sort_index(ascending=False) # ascending=False,根據(jù)索引將第四列降序排序 data2['第四列'].sort_index() # 默認(rèn)ascending=True,根據(jù)索引將第四列升序排序
操作演示
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
opencv+圖像處理(Image Processing in OpenCV)
這篇文章主要介紹了opencv+圖像處理(Image Processing in OpenCV) 4-0改變顏色空間,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04Python實(shí)現(xiàn)ping指定IP的示例
今天小編就為大家分享一篇Python實(shí)現(xiàn)ping指定IP的示例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06python實(shí)現(xiàn)遠(yuǎn)程控制電腦
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)遠(yuǎn)程控制電腦,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05基于注解實(shí)現(xiàn) SpringBoot 接口防刷的方法
這篇文章主要介紹了基于注解實(shí)現(xiàn) SpringBoot 接口防刷的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03Pytest使用fixture實(shí)現(xiàn)token共享的方法
同學(xué)們在做pytest接口自動(dòng)化時(shí),會遇到一個(gè)場景就是不同的測試用例需要有一個(gè)登錄的前置步驟,登錄完成后會獲取到token,用于之后的代碼中,本文給大家介紹Pytest使用fixture實(shí)現(xiàn)token共享的方法,感興趣的朋友一起看看吧2023-11-11使用Python設(shè)置tmpfs來加速項(xiàng)目的教程
這篇文章主要介紹了使用Python設(shè)置tmpfs來加速項(xiàng)目的教程,文中給出方法使用Python腳本將tmpfs保存于內(nèi)存中的程序存儲到本地硬盤上,需要的朋友可以參考下2015-04-04Python網(wǎng)絡(luò)爬蟲出現(xiàn)亂碼問題的解決方法
這篇文章主要為大家詳細(xì)介紹了Python網(wǎng)絡(luò)爬蟲出現(xiàn)亂碼問題的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01