pandas 資料子集的獲取

2022-07-20 19:03:11 字數 1754 閱讀 7394

有時資料讀入後並不是對整體資料進行分析,而是資料中的部分子集,例如,對於地鐵乘客量可能只關心某些時間段的流量,對於商品的交易可能只需要分析某些顏色的**變動,對於醫療診斷資料可能只對某個年齡段的人群感興趣等。所以,該如何根據特定的條件實現資料子集的獲取將是本節的主要內容。

通常,在pandas模組中實現資料框子集的獲取可以使用iloc,loc和ix三種『方法』,這三種方法既可以對資料進行篩選,也可以實現變數的挑選,它們的語法可以表示

成【row_select,cols_select】.

iloc只能通過行號和列號進行資料篩選,我們可以將iloc中的『i』理解為「integer」,即只能向【rows_select,cols_select】指定整數列表。該索引方式與陣列的索引方式類似,都是從0開始,可以間隔取號,對於切片仍然無法取到上限。

loc要比iloc靈活一些,讀者可以將loc中的「1」理解為「label」,即可以向【rows_select,col_select】指定具體的行標籤和列標籤。注意,這裡是標籤不再是索引。而且,還可以將rows_select指定為具體的篩選條件,在iloc中是無法做到的。

ix是iloc和loc的混合,讀者可以將ix理解為「mix」,該方法吸收了iloc和loc的優點,市資料庫子集的獲取更加靈活。(此方法忽略,最新的模組好像已經去掉了,編譯的時候警告,待再驗證)

如下用具體的**來說明iloc和loc二者之間的差異:

import pandas as pd

df1 = pd.dataframe(,columns = ['name','gender','age'])

df1#去除資料集的中間三行(所有女性),並且返回姓名和年齡兩列

再繼續研究,將員工的姓名用做行標籤

#將員工的姓名用作行標籤

df2 = df1.set_index('name')

df2#同樣取出資料集的中間三行

df2.iloc[1:4,:]

df2.loc[['李四','王二','丁一'],:]

很顯然,在實際的學習和工作中,觀測行的篩選很少是通過寫入具體的行索引或行標籤,而是對某些列做條件篩選,進而獲得目標資料.例如,在上面的df1資料集中,如何返回所有男性的姓名和年齡,**如下:

df1.loc[df1.gender == '男',['name','age']]

jq 獲取含類的子集 Jquery獲取子元素

jquery獲取子元素的方法有2種,分別是children 方法和find 方法。下面我們分別來使用這兩種方法,看看它們有何差異。children 方法 獲取該元素下的直接子集元素 find 方法 獲取該元素下的所有子集元素 分別以以下html 為例 list2 list3 children 方法獲...

3 3 資料框的子集

x data.frame v1 1 5,v2 6 10,v3 11 15 x v1 v2 v3 1 1 6 11 2 2 7 12 3 3 8 13 4 4 9 14 5 5 10 15 x v3 c 2,4 na x v1 v2 v3 1 1 6 11 2 2 7 na 3 3 8 13 4 4 ...

pandas獲取最近7天或者10天的資料

pandas獲取最近10天的資料也是乙個經常的應用,下面我們通過例子加以說明 import pandas as pd import numpy as np 構建資料,當前時間是2021年3月23日 df pd.dataframe df data date a 02021 03 111321 2021...