pandas采樣的實現(xiàn)方法
在數(shù)據(jù)分析和處理過程中,常常需要對數(shù)據(jù)進行隨機采樣,以便獲取具有代表性的小樣本或進行數(shù)據(jù)拆分。pandas 提供了非常方便的方法來實現(xiàn)隨機采樣。
基本用法:DataFrame 的 sample 方法
pandas 的 DataFrame 提供了 sample
方法用于隨機采樣,下面說明其基本用法和常見參數(shù):
示例數(shù)據(jù)
首先,創(chuàng)建一個示例 DataFrame:
import pandas as pd # 創(chuàng)建一個示例 DataFrame data = { 'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve', 'Frank', 'Grace', 'Hannah'], 'age': [25, 30, 35, 40, 45, 50, 55, 60], 'city': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix', 'Philadelphia', 'San Antonio', 'San Diego'] } df = pd.DataFrame(data) print(df)
示例 1:隨機抽取指定數(shù)量的行
可以使用 n
參數(shù)指定抽取的行數(shù):
# 隨機抽取 3 行數(shù)據(jù) sampled_df = df.sample(n=3) print(sampled_df)
示例 2:按比例隨機抽樣
可以使用 frac
參數(shù)指定抽樣的比例,例如 frac=0.5
表示隨機抽取 50% 的行數(shù):
# 隨機抽取 50% 的行 sampled_df = df.sample(frac=0.5) print(sampled_df)
示例 3:隨機抽樣時指定隨機種子
為了保證每次抽樣結(jié)果相同,可以使用 random_state
參數(shù)指定隨機種子:
# 隨機抽取 3 行數(shù)據(jù),并指定隨機種子 sampled_df = df.sample(n=3, random_state=1) print(sampled_df)
示例 4:按行或按列隨機抽樣
默認(rèn)情況下,sample
是按行抽樣(axis=0
),也可以設(shè)置 axis=1
來按列進行抽樣:
# 按列隨機抽取 2 列 sampled_df = df.sample(n=2, axis=1) print(sampled_df)
示例 5:返回是否放回抽樣
默認(rèn)情況下,sample
是不放回抽樣,即一個樣本只會被抽取一次。可以設(shè)置 replace=True
來進行有放回抽樣:
# 進行有放回抽樣,隨機抽取 10 個樣本 sampled_df = df.sample(n=10, replace=True, random_state=1) print(sampled_df)
示例 6:按某列進行分層隨機抽樣
有時需要按某列的值進行分層隨機抽樣,可以使用 groupby
和 apply
方法結(jié)合 sample
來實現(xiàn):
# 按 'city' 列進行分層隨機抽樣,每個城市隨機抽取 1 行 sampled_df = df.groupby('city').apply(lambda x: x.sample(n=1, random_state=1)).reset_index(drop=True) print(sampled_df)
總結(jié)
pandas 提供了豐富的參數(shù)和功能,讓 sample
方法能夠滿足各種隨機抽樣的需求,包括指定抽樣數(shù)量、按比例抽樣、設(shè)置隨機種子、有無放回抽樣以及按列和分層抽樣。這些功能在數(shù)據(jù)分析和處理過程中非常有用,有助于快速獲取具有代表性的小樣本進行分析。
到此這篇關(guān)于pandas采樣的實現(xiàn)方法的文章就介紹到這了,更多相關(guān)pandas采樣內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
用Python計算三角函數(shù)之a(chǎn)cos()方法的使用
這篇文章主要介紹了用Python計算三角函數(shù)之a(chǎn)cos()方法的使用,是Python學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2015-05-05pandas實現(xiàn)處理TB級別的數(shù)據(jù)
這篇文章主要介紹了pandas實現(xiàn)處理TB級別的數(shù)據(jù),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-04-04Python控制自己的手機攝像頭拍照并自動發(fā)送到郵箱案例講解
這篇文章主要介紹了Python控制自己的手機攝像頭拍照,并把照片自動發(fā)送到郵箱,大概思路是通過opencv調(diào)用攝像頭拍照保存圖像本地用email庫構(gòu)造郵件內(nèi)容,保存的圖像以附件形式插入郵件內(nèi)容用smtplib庫發(fā)送郵件到指定郵箱,需要的朋友可以參考下2022-04-04Pycharm?2020最新永久激活碼(附最新激活碼和插件)
最近很多朋友的Pycharm激活時間又過期了,今天小編再把激活的方法匯總和工具分享一下,文中給大家分享兩種方式,需要的朋友直接拿去用吧2020-01-01使用python動態(tài)生成波形曲線的實現(xiàn)
今天小編就為大家分享一篇使用python動態(tài)生成波形曲線的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12