pandas索引與賦值操作、排序以及Series排序和DataFrame排序方式
一、pandas索引操作
索引操作,使用索引選取序列和切片選擇數(shù)據(jù),也可以直接使用列名、行名稱,或組合使用
- 直接使用行列索引:行列索引名順序為先列再行,使用指定行列索引名,不能使用下標
- loc[行索引名,列索引名]:先行再列,只能使用指定的行列索引名,不能使用下標
- iloc[行,列]:先行再列,只能使用索引下標獲取數(shù)據(jù),不能使用指定行列索引名
- 下標索引與指定行列索引相結(jié)合:使用index或columns.get_indexer,見案例
代碼如下
import pandas as pd import numpy as np # 數(shù)據(jù)生成代碼 num = np.random.randint(50, 100, (3, 5)) num # 傳入標簽索引 column = ['第一列', '第二列', '第三列', '第四列', '第五列'] # 列標簽索引 # ind = ['第一行', '第二行', '第三行'] # 行標簽索引 ind = ['第_' + str(i) + '_行' for i in range(num.shape[0])] # 行標簽索引,num.shape[0]即獲取num數(shù)組的行號,此處為3 data = pd.DataFrame(num, columns=column, index=ind) data ------------------------------------------------------------------- data['第五列']['第_2_行'] # 只能先列再行 data['第_2_行']['第五列'] # 先行再列,報錯 data.loc['第_0_行':'第_2_行', '第三列'] # 先行再列,loc只能使用指定行列索引,切取第三列中[0,2]行中的數(shù)據(jù) data.loc[:'第_2_行', '第三列':] # loc只能使用指定行列索引,切取[0,2]行,3-最后一列的數(shù)據(jù) data.iloc[:2, 2:] # iloc只能使用下標索引,切取[0,2)行,3-最后一列的數(shù)據(jù)
數(shù)據(jù)生成
操作如下


下標索引與指定行列索引相結(jié)合
data.loc[data.index[0:2], ['第二列', '第三列', '第五列']] # 下標索引與指定行列索引相結(jié)合 data.iloc[0:2, data.columns.get_indexer(['第二列', '第三列', '第五列'])] # 下標索引與指定行列索引相結(jié)合

二、pandas賦值操作
只能對某一列賦值,不能對一行賦值,有兩種方式,直接使用索引或用點.索引名,具體如下
代碼如下
import pandas as pd import numpy as np # 數(shù)據(jù)生成代碼 num = np.random.randint(50, 100, (3, 5)) # 傳入標簽索引 column = ['第一列', '第二列', '第三列', '第四列', '第五列'] # 列標簽索引 # ind = ['第一行', '第二行', '第三行'] # 行標簽索引 ind = ['第_' + str(i) + '_行' for i in range(num.shape[0])] # 行標簽索引,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排序有兩種方式,一種是對索引進行排序,另一種是對內(nèi)容進行排序
3.1 DataFrame排序
df.sort_values(by=, ascending=):單個鍵(列名)或多個鍵進行排序by:指定排序參考的鍵ascending:指定升序或降序ascending=True:默認升序ascending=False:降序df.sort_index():給索引進行排序
代碼如下
data2.sort_values(by='第三列') # 默認ascending=True,即升序排序 data2.sort_values(by='第三列', ascending=False) # 根據(jù)第三列降序排序 data2.sort_values(by=['第一列', '第四列'], ascending=False) # 根據(jù)多列降序排序 data2.sort_index() # 給索引進行排序
操作演示



3.2 Series排序
- series.sort_values(ascending=True):series排序時,只有一列,不需要參數(shù)
- series.sort_index(ascending=):根據(jù)索引排序,ascending指定升序或降序,默認升序
代碼如下
data2['第四列'].sort_values() # 默認ascending=True,即將第四列升序排序 data2['第四列'].sort_values(ascending=False) # ascending=False,將第四列降序排序 data2['第四列'].sort_index(ascending=False) # ascending=False,根據(jù)索引將第四列降序排序 data2['第四列'].sort_index() # 默認ascending=True,根據(jù)索引將第四列升序排序
操作演示


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

