欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

pandas按某2列進(jìn)行分層隨機(jī)抽樣的實(shí)現(xiàn)

 更新時(shí)間:2024年12月31日 10:52:38   作者:frostjsy  
本文主要介紹了pandas按某2列進(jìn)行分層隨機(jī)抽樣的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

在某些情況下,你可能需要按多列組合后的分組進(jìn)行分層隨機(jī)抽樣。pandas 提供了靈活的數(shù)據(jù)操作方法,你可以使用 groupby 和 apply 方法結(jié)合 sample 來實(shí)現(xiàn)這種需求。具體來說,你可以先按多列分組,然后對(duì)每個(gè)分組進(jìn)行隨機(jī)抽樣。

示例數(shù)據(jù)

首先,創(chuàng)建一個(gè)包含兩列的數(shù)據(jù) DataFrame:

import pandas as pd

# 創(chuàng)建一個(gè)示例 DataFrame
data = {
    'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve', 'Frank', 'Grace', 'Hannah', 
             'Alice', 'Bob', 'Charlie', 'David', 'Eve', 'Frank', 'Grace', 'Hannah'],
    'age': [25, 30, 35, 40, 45, 50, 55, 60, 25, 30, 35, 40, 45, 50, 55, 60],
    'city': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix', 'Philadelphia', 'San Antonio', 'San Diego',
             'New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix', 'Philadelphia', 'San Antonio', 'San Diego'],
    'department': ['HR', 'Finance', 'IT', 'Marketing', 'Sales', 'R&D', 'Admin', 'HR',
                   'Finance', 'IT', 'Marketing', 'Sales', 'R&D', 'Admin', 'HR', 'Finance']
}
df = pd.DataFrame(data)

print(df)
# 輸出:
#        name  age         city department
# 0     Alice   25     New York         HR
# 1       Bob   30  Los Angeles    Finance
# 2   Charlie   35      Chicago         IT
# 3     David   40      Houston  Marketing
# 4       Eve   45      Phoenix      Sales
# 5     Frank   50  Philadelphia        R&D
# 6     Grace   55   San Antonio      Admin
# 7    Hannah   60     San Diego         HR
# 8     Alice   25     New York    Finance
# 9       Bob   30  Los Angeles         IT
# 10  Charlie   35      Chicago  Marketing
# 11    David   40      Houston      Sales
# 12      Eve   45      Phoenix        R&D
# 13    Frank   50  Philadelphia      Admin
# 14    Grace   55   San Antonio         HR
# 15   Hannah   60     San Diego    Finance

按兩列分組并進(jìn)行分層隨機(jī)抽樣

假設(shè)你希望按 city 和 department 列進(jìn)行分組,并從每個(gè)組中隨機(jī)抽取一個(gè)樣本。你可以這樣實(shí)現(xiàn):

import pandas as pd

# 創(chuàng)建一個(gè)示例 DataFrame
data = {
    'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve', 'Frank', 'Grace', 'Hannah', 
             'Alice', 'Bob', 'Charlie', 'David', 'Eve', 'Frank', 'Grace', 'Hannah'],
    'age': [25, 30, 35, 40, 45, 50, 55, 60, 25, 30, 35, 40, 45, 50, 55, 60],
    'city': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix', 'Philadelphia', 'San Antonio', 'San Diego',
             'New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix', 'Philadelphia', 'San Antonio', 'San Diego'],
    'department': ['HR', 'Finance', 'IT', 'Marketing', 'Sales', 'R&D', 'Admin', 'HR',
                   'Finance', 'IT', 'Marketing', 'Sales', 'R&D', 'Admin', 'HR', 'Finance']
}
df = pd.DataFrame(data)

print(df)
# 按 'city' 和 'department' 列分組,并對(duì)每個(gè)分組隨機(jī)抽取 1 行
sampled_df = df.groupby(['city', 'department']).apply(lambda x: x.sample(n=1, random_state=42)).reset_index(drop=True)

print(sampled_df)

具體步驟說明

  • 按多列進(jìn)行分組:使用 groupby(['city', 'department']) 按 city 和 department 兩列進(jìn)行分組。
  • 對(duì)每個(gè)分組隨機(jī)抽樣:使用 apply 和 lambda 函數(shù)對(duì)每個(gè)分組調(diào)用 sample(n=1) 隨機(jī)抽取一行。random_state 參數(shù)用于設(shè)置隨機(jī)種子,以確保結(jié)果可重現(xiàn)。
  • 重置索引:使用 reset_index(drop=True) 重置索引,以避免保留分組鍵的索引信息。

輸出示例

根據(jù)樣本數(shù)據(jù)的不同,輸出可能會(huì)有所差異。以下是一個(gè)可能的輸出示例:

       name  age         city department
0     Alice   25  Los Angeles    Finance
1    Charlie   35      Chicago         IT
2     Frank   50  Philadelphia        R&D
3     Hannah   60     San Diego    Finance
4       Bob   30      Houston  Marketing
5     Grace   55   San Antonio         HR
6     Alice   25     New York         HR
7       Eve   45      Phoenix      Sales
8     David   40      Houston      Sales
9    Charlie   35      Chicago  Marketing
10    Hannah   60     San Diego         HR
11    Grace   55   San Antonio      Admin
12      Bob   30  Los Angeles         IT
13    David   40     New York    Finance
14     Eve   45      Phoenix        R&D
15    Frank   50  Philadelphia      Admin

這樣,你可以輕松地對(duì) DataFrame 中的多列進(jìn)行分組,并從每個(gè)分組中進(jìn)行分層隨機(jī)抽樣。這種技術(shù)在數(shù)據(jù)分析和機(jī)器學(xué)習(xí)中非常有用,可以幫助你從大數(shù)據(jù)集中獲得具有代表性的小樣本進(jìn)行分析。

到此這篇關(guān)于pandas按某2列進(jìn)行分層隨機(jī)抽樣的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)pandas 某2列分層隨機(jī)抽樣內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用python+pygame開發(fā)消消樂游戲附完整源碼

    使用python+pygame開發(fā)消消樂游戲附完整源碼

    消消樂小游戲相信大家都玩過,大人小孩都喜歡玩的一款小游戲,那么基于程序是如何實(shí)現(xiàn)的呢?今天帶大家,用python+pygame來實(shí)現(xiàn)一下這個(gè)花里胡哨的消消樂小游戲功能,感興趣的朋友一起看看吧
    2021-06-06
  • python利用pandas和csv包向一個(gè)csv文件寫入或追加數(shù)據(jù)

    python利用pandas和csv包向一個(gè)csv文件寫入或追加數(shù)據(jù)

    這篇文章主要給大家介紹了關(guān)于python利用pandas和csv包向一個(gè)csv文件寫入或追加數(shù)據(jù)的相關(guān)資料,我們?cè)絹碓蕉嗟氖褂胮andas進(jìn)行數(shù)據(jù)處理,有時(shí)需要向一個(gè)已經(jīng)存在的csv文件寫入數(shù)據(jù),需要的朋友可以參考下
    2023-07-07
  • Python搭建Keras CNN模型破解網(wǎng)站驗(yàn)證碼的實(shí)現(xiàn)

    Python搭建Keras CNN模型破解網(wǎng)站驗(yàn)證碼的實(shí)現(xiàn)

    這篇文章主要介紹了Python搭建Keras CNN模型破解網(wǎng)站驗(yàn)證碼的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • python tkinter實(shí)現(xiàn)屏保程序

    python tkinter實(shí)現(xiàn)屏保程序

    這篇文章主要為大家詳細(xì)介紹了python tkinter實(shí)現(xiàn)屏保程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • python寫日志文件操作類與應(yīng)用示例

    python寫日志文件操作類與應(yīng)用示例

    這篇文章主要介紹了python寫日志文件操作類與應(yīng)用,結(jié)合實(shí)例形式分析了Python日志文件操作類的定義與使用相關(guān)操作技巧,需要的朋友可以參考下
    2019-07-07
  • python?AutoViz庫一行代碼實(shí)現(xiàn)可視化數(shù)據(jù)集

    python?AutoViz庫一行代碼實(shí)現(xiàn)可視化數(shù)據(jù)集

    這篇文章主要介紹了python?AutoViz庫一行代碼實(shí)現(xiàn)可視化數(shù)據(jù)集實(shí)例探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • Python批量按比例縮小圖片腳本分享

    Python批量按比例縮小圖片腳本分享

    這篇文章主要介紹了Python批量按比例縮小圖片腳本分享,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2015-05-05
  • pyqt 多窗口之間的相互調(diào)用方法

    pyqt 多窗口之間的相互調(diào)用方法

    今天小編就為大家分享一篇pyqt 多窗口之間的相互調(diào)用方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • 使用Python的xlrd和xlwt操作Excel詳解

    使用Python的xlrd和xlwt操作Excel詳解

    這篇文章主要介紹了使用Python的xlrd和xlwt對(duì)比操作Excel詳解,xlrd和xlwt是python的第三方庫,xlrd模塊實(shí)現(xiàn)對(duì)excel文件內(nèi)容讀取,xlwt模塊實(shí)現(xiàn)對(duì)excel文件的寫入,需要的朋友可以參考下
    2023-08-08
  • Python-openCV讀RGB通道圖實(shí)例

    Python-openCV讀RGB通道圖實(shí)例

    今天小編就為大家分享一篇Python-openCV讀RGB通道圖實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01

最新評(píng)論