国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - pandas之query方法和sample隨機抽樣操作

pandas之query方法和sample隨機抽樣操作

2021-09-15 00:44風雪云俠 Python

這篇文章主要介紹了pandas之query方法和sample隨機抽樣操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

query方法

在 pandas 中,支持把字符串形式的查詢表達式傳入 query 方法來查詢數據,其表達式的執行結果必須返回布爾列表。在進行復雜索引時,由于這種檢索方式無需像普通方法一樣重復使用 DataFrame 的名字來引用列名,一般而言會使代碼長度在不降低可讀性的前提下有所減少。

例如

?
1
2
3
4
5
6
7
8
9
10
11
12
13
In [61]: df.query('((School == "Fudan University")&'
  ....:     ' (Grade == "Senior")&'
  ....:     ' (Weight > 70))|'
  ....:     '((School == "Peking University")&'
  ....:     ' (Grade != "Senior")&'
  ....:     ' (Weight > 80))')
  ....:
Out[61]:
        School   Grade      Name Gender Weight Transfer
38  Peking University Freshman    Qiang Han  Male  87.0    N
66  Fudan University  Senior Chengpeng Zhou  Male  81.0    N
99  Peking University Freshman Changpeng Zhao  Male  83.0    N
131  Fudan University  Senior Chengpeng Qian  Male  73.0    Y

在 query 表達式中,幫用戶注冊了所有來自 DataFrame 的列名,所有屬于該 Series 的方法都可以被調用,和正常的函數調用并沒有區別,例如查詢體重超過均值的學生:

?
1
2
3
4
5
6
7
8
In [62]: df.query('Weight > Weight.mean()').head()
Out[62]:
              School   Grade      Name Gender Weight Transfer
1        Peking University  Freshman Changqiang You  Male  70.0    N
2  Shanghai Jiao Tong University   Senior     Mei Sun  Male  89.0    N
4        Fudan University Sophomore   Gaojuan You  Male  74.0    N
10 Shanghai Jiao Tong University  Freshman  Xiaopeng Zhou  Male  74.0    N
14      Tsinghua University   Senior  Xiaomei Zhou Female  57.0    N

同時,在 query 中還注冊了若干英語的字面用法,幫助提高可讀性,例如: or, and, or, is in, not in 。

例如,篩選出男生中不是大一大二的學生:

?
1
2
3
4
5
6
7
8
9
10
In [63]: df.query('(Grade not in ["Freshman", "Sophomore"]) and'
  ....:     '(Gender == "Male")').head()
  ....:
Out[63]:
              School  Grade      Name Gender Weight Transfer
2  Shanghai Jiao Tong University Senior    Mei Sun  Male  89.0    N
16      Tsinghua University Junior Xiaoqiang Qin  Male  68.0    N
17      Tsinghua University Junior   Peng Wang  Male  65.0    N
18      Tsinghua University Senior  Xiaofeng Sun  Male  71.0    N
21 Shanghai Jiao Tong University Senior Xiaopeng Shen  Male  62.0   NaN

此外,在字符串中出現與列表的比較時, ==和!= 分別表示元素出現在列表和沒有出現在列表,等價于 is in 和 not in,例如查詢所有大三和大四的學生:

?
1
2
3
4
5
6
7
8
In [64]: df.query('Grade == ["Junior", "Senior"]').head()
Out[64]:
              School  Grade      Name Gender Weight Transfer
2  Shanghai Jiao Tong University Senior    Mei Sun  Male  89.0    N
7       Tsinghua University Junior Gaoqiang Qian Female  50.0    N
9        Peking University Junior    Juan Xu Female   NaN    N
11      Tsinghua University Junior  Xiaoquan Lv Female  43.0    N
12 Shanghai Jiao Tong University Senior    Peng You Female  48.0   NaN

對于 query 中的字符串,如果要引用外部變量,只需在變量名前加 @ 符號。例如,取出體重位于70kg到80kg之間的學生:

?
1
2
3
4
5
6
7
8
9
10
In [65]: low, high =70, 80
 
In [66]: df.query('Weight.between(@low, @high)').head()
Out[66]:
              School   Grade      Name Gender Weight Transfer
1        Peking University  Freshman Changqiang You  Male  70.0    N
4        Fudan University Sophomore   Gaojuan You  Male  74.0    N
10 Shanghai Jiao Tong University  Freshman  Xiaopeng Zhou  Male  74.0    N
18      Tsinghua University   Senior  Xiaofeng Sun  Male  71.0    N
35       Peking University  Freshman   Gaoli Zhao  Male  78.0    N

隨機抽樣

如果把 DataFrame 的每一行看作一個樣本,或把每一列看作一個特征,再把整個 DataFrame 看作總體,想要對樣本或特征進行隨機抽樣就可以用 sample 函數。有時在拿到大型數據集后,想要對統計特征進行計算來了解數據的大致分布,但是這很費時間。

同時,由于許多統計特征在等概率不放回的簡單隨機抽樣條件下,是總體統計特征的無偏估計,比如樣本均值和總體均值,那么就可以先從整張表中抽出一部分來做近似估計。

sample 函數中的主要參數為 n, axis, frac, replace, weights ,前三個分別是指抽樣數量、抽樣的方向(0為行、1為列)和抽樣比例(0.3則為從總體中抽出30%的樣本)。

replace 和 weights 分別是指是否放回和每個樣本的抽樣相對概率,當 replace = True 則表示有放回抽樣。例如,對下面構造的 df_sample 以 value 值的相對大小為抽樣概率進行有放回抽樣,抽樣數量為3。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
In [67]: df_sample = pd.DataFrame({'id': list('abcde'),
  ....:              'value': [1, 2, 3, 4, 90]})
  ....:
 
In [68]: df_sample
Out[68]:
 id value
0 a   1
1 b   2
2 c   3
3 d   4
4 e   90
 
In [69]: df_sample.sample(3, replace = True, weights = df_sample.value)
Out[69]:
 id value
4 e   90
4 e   90
4 e   90

補充:pandas.DataFrame.sample 隨機選取若干行

1、數據切片選取

1.1 pandas.DataFrame.sample 隨機選取若干行

1.1.1 功能說明

有時候我們只需要數據集中的一部分,并不需要全部的數據。這個時候我們就要對數據集進行隨機的抽樣。pandas中自帶有抽樣的方法。

功能相似:numpy.random.choice

?
1
Generates a random sample from a given 1-D numpy array.

1.1.2 使用說明

1.函數名及功能

?
1
DataFrame.sample(n=None, frac=None, replace=False, weights=None, random_state=None, axis=None)[source]

2.輸入參數說明

參數名稱 參數說明 舉例說明
n 要抽取的行數

df.sample(n=3,random_state=1)
提取3行數據列表
注意,使用random_state,以確保可重復性的例子。

frac

抽取行的比例
例如frac=0.8,就是抽取其中80%。

df.sample(frac=0.8, replace=True, random_state=1)
replace

是否為有放回抽樣,
True:有放回抽樣
False:未放回抽樣

True:取行數據后,可以重復放回后再取
False:取行數據后不放回,下次取其它行數據
注意:當N>總數據容量,replace設置為值時有效

weights

字符索引或概率數組

axis=0:為行字符索引或概率數組
axis=1:為列字符索引或概率數組

 
random_state

int: 隨機數發生器種子
或numpy.random.RandomState

random_state=None,取得數據不重復
random_state=1,可以取得重復數據

axis

選擇抽取數據的行還是列
axis=0:抽取行
axis=1:抽取列

也就是說axis=1時,在列中隨機抽取n列,在axis=0時,在行中隨機抽取n行。

3. 返回值說明

返回選擇的N行元素的DataFrame對象。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持服務器之家。如有錯誤或未考慮完全的地方,望不吝賜教。

原文鏈接:https://blog.csdn.net/weixin_40426830/article/details/112209924

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 伊人精品视频在线观看 | 激情欧美日韩一区二区 | 特级av| 国产午夜精品一区二区三区免费 | 国产精品精品久久久 | 国产婷婷 | 日韩精品视频在线 | 欧美日韩中文字幕 | 自拍偷拍亚洲 | 亚洲精品www久久久久久广东 | 亚洲成人一区二区三区在线观看 | 中文字幕在线日韩 | 国产精品久久 | 三区视频 | 久久综合一区二区 | 中外毛片| 在线欧美日韩 | 在线视频a| 精品久久久久久久久久久久 | 69久久| 免费看的av | 亚洲综合二区 | x99av成人免费 | 午夜资源| 寡妇高潮免费视频一区二区三区 | 国产精品国产三级国产aⅴ 亚洲精品免费在线观看 | 久久av资源 | 亚洲网站在线 | 在线视频 亚洲 | 亚洲精品视频在线看 | 国产精品美女久久久久aⅴ国产馆 | 中文天堂在线观看视频 | 在线免费日韩 | 九九久久久| 黄色免费观看 | 日韩在线观看中文字幕 | 欧美精品v国产精品v日韩精品 | 国产老头老太作爱视频 | 亚洲在线播放 | 欧美日本在线观看 | 成人精品一区二区三区中文字幕 |