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è)參考,也希望大家多多支持腳本之家。
- pandas中DataFrame排序及分組排序的實(shí)現(xiàn)示例
- pandas dataframe拼接后index重新排序方式
- Pandas DataFrame如何按照一列數(shù)據(jù)的特定順序進(jìn)行排序
- pandas?dataframe按照列名給列排序三種方法
- pandas.DataFrame Series排序的使用(sort_values,sort_index)
- Python數(shù)據(jù)分析Pandas?Dataframe排序操作
- Pandas實(shí)現(xiàn)DataFrame的簡單運(yùn)算、統(tǒng)計(jì)與排序
- pandas 對series和dataframe進(jìn)行排序的實(shí)例
- Pandas 對Dataframe結(jié)構(gòu)排序的實(shí)現(xiàn)方法
- Pandas DataFrame中兩種排序函數(shù)的使用
相關(guān)文章
python使用正則表達(dá)式提取網(wǎng)頁URL的方法
這篇文章主要介紹了python使用正則表達(dá)式提取網(wǎng)頁URL的方法,涉及Python中urllib模塊及正則表達(dá)式的相關(guān)使用技巧,需要的朋友可以參考下2015-05-05
python PyQt5的窗口界面的各種交互邏輯實(shí)現(xiàn)
PyQt5是一個(gè)Python綁定庫,用于Qt C++ GUI框架,它允許開發(fā)者使用Python語言創(chuàng)建跨平臺的應(yīng)用程序,并利用豐富的Qt圖形用戶界面功能,本文介紹了python中PyQt5窗口界面的各種交互邏輯實(shí)現(xiàn),需要的朋友可以參考下2024-07-07
詳解Python的hasattr() getattr() setattr() 函數(shù)使用方法
這篇文章主要介紹了詳解Python的hasattr() getattr() setattr() 函數(shù)使用方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-07-07
python靜態(tài)web服務(wù)器實(shí)現(xiàn)方法及代碼詳解
在本篇內(nèi)容里小編給大家分享了一篇關(guān)于python靜態(tài)web服務(wù)器實(shí)現(xiàn)方法,有需要的朋友們可以參考下。2022-11-11

