最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

具體步驟說(shuō)明

  • 按多列進(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 BeautifulSoup中文亂碼問(wèn)題的2種解決方法

    Python BeautifulSoup中文亂碼問(wèn)題的2種解決方法

    這篇文章主要介紹了Python BeautifulSoup中文亂碼問(wèn)題的2種解決方法,需要的朋友可以參考下
    2014-04-04
  • python cookielib 登錄人人網(wǎng)的實(shí)現(xiàn)代碼

    python cookielib 登錄人人網(wǎng)的實(shí)現(xiàn)代碼

    今天晚上不是很忙,所以早早的就在電腦的旁邊開(kāi)始寫(xiě)東西了。我今天給大家分享一個(gè)我自己用python寫(xiě)的自動(dòng)登錄 人人網(wǎng)的腳本,沒(méi)辦法就是懶!懶的輸入帳號(hào)和密碼,讓python給我們減少工作量
    2012-12-12
  • tensorflow之如何使用GPU而不是CPU問(wèn)題

    tensorflow之如何使用GPU而不是CPU問(wèn)題

    這篇文章主要介紹了tensorflow之如何使用GPU而不是CPU問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Python實(shí)現(xiàn)PDF表格轉(zhuǎn)CSV的完整方法與代碼解析

    Python實(shí)現(xiàn)PDF表格轉(zhuǎn)CSV的完整方法與代碼解析

    PDF?格式因其版式固定性而廣泛用于文檔交換,但也導(dǎo)致結(jié)構(gòu)化數(shù)據(jù)(如表格)難以直接抽取,本文將介紹如何使用免費(fèi)庫(kù)?Free?Spire.PDF?for?Python?解析?PDF?表格,并結(jié)合?Python?內(nèi)置?csv?標(biāo)準(zhǔn)庫(kù)完成數(shù)據(jù)導(dǎo)出,有需要的可以了解下
    2026-06-06
  • 使用Python操作MySQL數(shù)據(jù)庫(kù)的教程詳解

    使用Python操作MySQL數(shù)據(jù)庫(kù)的教程詳解

    在這篇文章中,主要為大家詳細(xì)介紹如何在Python中使用pymysql模塊來(lái)操作MySQL數(shù)據(jù)庫(kù),文中的示例代碼簡(jiǎn)介易懂,需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-07-07
  • Python Selenium自動(dòng)化實(shí)現(xiàn)網(wǎng)頁(yè)操控

    Python Selenium自動(dòng)化實(shí)現(xiàn)網(wǎng)頁(yè)操控

    Selenium 是一個(gè)用于 Web 應(yīng)用程序測(cè)試的工具,支持多種瀏覽器,下面我們就來(lái)看看Python如何使用Selenium實(shí)現(xiàn)自動(dòng)化操作網(wǎng)頁(yè)吧
    2025-08-08
  • Python利用ROI進(jìn)行圖像合成的問(wèn)題小結(jié)

    Python利用ROI進(jìn)行圖像合成的問(wèn)題小結(jié)

    圖像的 ROI (region of interest) 是指圖像中感興趣區(qū)域、在 OpenCV 中圖像設(shè)置圖像 ROI 區(qū)域,實(shí)現(xiàn)只對(duì) ROI 區(qū)域操作,本文給大家介紹Python利用ROI進(jìn)行圖像合成的問(wèn)題小結(jié),感興趣的朋友一起看看吧
    2021-07-07
  • Python TCPServer 多線程多客戶端通信的實(shí)現(xiàn)

    Python TCPServer 多線程多客戶端通信的實(shí)現(xiàn)

    這篇文章主要介紹了Python TCPServer 多線程多客戶端通信的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • numpy.sum()坐標(biāo)軸問(wèn)題的解決

    numpy.sum()坐標(biāo)軸問(wèn)題的解決

    本文主要介紹了numpy.sum()坐標(biāo)軸問(wèn)題的解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • pytorch 如何使用float64訓(xùn)練

    pytorch 如何使用float64訓(xùn)練

    這篇文章主要介紹了pytorch 使用float64訓(xùn)練的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05

最新評(píng)論

观塘区| 东宁县| 建瓯市| 张家界市| 比如县| 安宁市| 道孚县| 永丰县| 鲁山县| 屏东市| 房山区| 藁城市| 潜江市| 金湖县| 麻栗坡县| 鄂温| 南宁市| 循化| 深水埗区| 新和县| 陆川县| 乌什县| 宁蒗| 交城县| 新干县| 江油市| 曲周县| 敦化市| 湘阴县| 邹平县| 淮阳县| 应城市| 寻乌县| 沂源县| 沙坪坝区| 遂宁市| 廉江市| 偃师市| 城市| 荔浦县| 大余县|