pandas索引與賦值操作、排序以及Series排序和DataFrame排序方式
一、pandas索引操作
索引操作,使用索引選取序列和切片選擇數(shù)據(jù),也可以直接使用列名、行名稱,或組合使用
- 直接使用行列索引:行列索引名順序為先列再行,使用指定行列索引名,不能使用下標
- loc[行索引名,列索引名]:先行再列,只能使用指定的行列索引名,不能使用下標
- iloc[行,列]:先行再列,只能使用索引下標獲取數(shù)據(jù),不能使用指定行列索引名
- 下標索引與指定行列索引相結合:使用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ù)生成
操作如下
下標索引與指定行列索引相結合
data.loc[data.index[0:2], ['第二列', '第三列', '第五列']] # 下標索引與指定行列索引相結合 data.iloc[0:2, data.columns.get_indexer(['第二列', '第三列', '第五列'])] # 下標索引與指定行列索引相結合
二、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排序有兩種方式,一種是對索引進行排序,另一種是對內容進行排序
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ù)索引將第四列升序排序
操作演示
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
opencv+圖像處理(Image Processing in OpenCV)
這篇文章主要介紹了opencv+圖像處理(Image Processing in OpenCV) 4-0改變顏色空間,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04基于注解實現(xiàn) SpringBoot 接口防刷的方法
這篇文章主要介紹了基于注解實現(xiàn) SpringBoot 接口防刷的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-03-03Pytest使用fixture實現(xiàn)token共享的方法
同學們在做pytest接口自動化時,會遇到一個場景就是不同的測試用例需要有一個登錄的前置步驟,登錄完成后會獲取到token,用于之后的代碼中,本文給大家介紹Pytest使用fixture實現(xiàn)token共享的方法,感興趣的朋友一起看看吧2023-11-11Python網(wǎng)絡爬蟲出現(xiàn)亂碼問題的解決方法
這篇文章主要為大家詳細介紹了Python網(wǎng)絡爬蟲出現(xiàn)亂碼問題的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-01-01