Python數據框基礎操作:DataFrame.sample()方法實例詳解

一、DataFrame.sample()方法概述

Python中的pandas庫提供了一個功能強大的類——DataFrame,該類被廣泛應用於數據幀分析和操作。函數DataFrame.sample()是該類中的一個方法,它通常用於從數據框中隨機抽取樣本。該函數的主要語法如下:

DataFrame.sample(n=None, frac=None, replace=False, weights=None, random_state=None, axis=None)

其中,參數n表示輸出樣本的數量,frac表示輸出樣本的佔比,用0到1之間的浮點數表示。replace參數表示是否可以在輸出樣本中包含重複的行。weights參數表示每行在隨機過程中抽取的權重,必須是正數,如果缺省情況下,則每個樣本的權重相等。axis參數表示是從行方向(axis=0)或列方向(axis=1)中抽取樣本,默認是從行方向中抽取。

二、DataFrame.sample()方法的使用場景

在大數據的處理過程中,為了提高數據的處理效率,通常只需要對整個數據集中的一部分進行分析,並從中抽取樣本的數據子集。常見的使用場景包括隨機抽樣、k-means和kmeans++算法等。與大多數概率算法相同,隨機抽樣需要隨機數生成器。 為了確保結果的可復現性,可以通過隨機狀態(random_state)參數指定隨機數種子,從而確保得到的樣本集的統計意義是相同的。

三、DataFrame.sample()方法的代碼示例

下面給出一個關於DataFrame.sample()方法的簡單實例:

import pandas as pd
import numpy as np
 
# 創建一個數據框
df = pd.DataFrame({'A': range(1, 11), 'B': np.random.randn(10)})
print("原始數據框:")
print(df)
 
# 從數據框中抽取整行,輸出前2行數據
df_sample1 = df.sample(n=2) 
print("\n抽取2行:")
print(df_sample1)
 
# 從數據框中抽取整行,輸出前30%的數據
df_sample2 = df.sample(frac=0.3, random_state=1)
print("\n抽取前30%的數據:")
print(df_sample2)
 
# 從數據框中抽取整列
df_sample3 = df.sample(axis=1)
print("\n抽取整列:")
print(df_sample3)

上述代碼輸出的運行結果如下:

原始數據框:
    A         B
0   1  0.160417
1   2 -0.536356
2   3 -0.784670
3   4  0.432485
4   5 -1.269952
5   6  1.711935
6   7 -0.154067
7   8  0.933766
8   9  1.076213
9  10 -1.051958

抽取2行:
   A         B
1  2 -0.536356
4  5 -1.269952

抽取前30%的數據:
   A         B
3  4  0.432485
5  6  1.711935
4  5 -1.269952

抽取整列:
          B   A
0  0.160417   1
1 -0.536356   2
2 -0.784670   3
3  0.432485   4
4 -1.269952   5
5  1.711935   6
6 -0.154067   7
7  0.933766   8
8  1.076213   9
9 -1.051958  10

四、DataFrame.sample()方法快速實現隨機採樣

DataFrame.sample()方法一個非常有用的特性就是可以快速實現隨機採樣。下面以在從一個大型數據集中抽取前50個樣本為例,介紹如何實現隨機採樣。

import pandas as pd
 
# 假設有百萬記錄的大型數據集 dset,隨機抽取前50條記錄
dset = pd.read_csv("dset.csv")
rand_indices = np.arange(dset.shape[0])
np.random.shuffle(rand_indices)
dset = dset.iloc[rand_indices[:50], :]

上述代碼中,np.random.shuffle()函數將數據集中的每個記錄打亂,之後iloc方法根據生成的隨機索引(rand_indices)從數據集中隨機抽取出前50條記錄。

原創文章,作者:NRIQ,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/144642.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
NRIQ的頭像NRIQ
上一篇 2024-10-26 11:51
下一篇 2024-10-26 11:51

相關推薦

  • Python基礎代碼用法介紹

    本文將從多個方面對Python基礎代碼進行解析和詳細闡述,力求讓讀者深刻理解Python基礎代碼。通過本文的學習,相信大家對Python的學習和應用會更加輕鬆和高效。 一、變量和數…

    編程 2025-04-29
  • Python棧操作用法介紹

    如果你是一位Python開發工程師,那麼你必須掌握Python中的棧操作。在Python中,棧是一個容器,提供後進先出(LIFO)的原則。這篇文章將通過多個方面詳細地闡述Pytho…

    編程 2025-04-29
  • Python生成隨機數的應用和實例

    本文將向您介紹如何使用Python生成50個60到100之間的隨機數,並將列舉使用隨機數的幾個實際應用場景。 一、生成隨機數的代碼示例 import random # 生成50個6…

    編程 2025-04-29
  • Python操作數組

    本文將從多個方面詳細介紹如何使用Python操作5個數組成的列表。 一、數組的定義 數組是一種用於存儲相同類型數據的數據結構。Python中的數組是通過列表來實現的,列表中可以存放…

    編程 2025-04-29
  • 數據結構與算法基礎青島大學PPT解析

    本文將從多個方面對數據結構與算法基礎青島大學PPT進行詳細的闡述,包括數據類型、集合類型、排序算法、字符串匹配和動態規劃等內容。通過對這些內容的解析,讀者可以更好地了解數據結構與算…

    編程 2025-04-29
  • Python零基礎PDF下載

    本文將為大家介紹如何使用Python下載PDF文件,適合初學者上手實踐。 一、安裝必要的庫 在Python中,我們需要使用urllib和requests庫來獲取PDF文件的鏈接,並…

    編程 2025-04-29
  • 樹莓派DIY無人機一:製作基礎

    本文將介紹如何使用樹莓派製作一個可飛行的小型無人機。本文將介紹樹莓派的選型、比例積木的使用、無線電通信以及如何控制飛行器的基本運動。 一、樹莓派的選型 在DIY無人機中,樹莓派是必…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL數據庫 在使用Python操作MySQL之前,我們需要先連接MySQL數據庫。在Python中,我…

    編程 2025-04-29
  • Polyphone音頻編輯器基礎入門教程

    Polyphone是一款免費的音頻編輯器,可用於編輯.sf2和.sfz格式的音色庫。本文將詳細介紹Polyphone的基礎操作及使用方法。 一、安裝和簡介 首先,我們需要下載並安裝…

    編程 2025-04-29
  • Python磁盤操作全方位解析

    本篇文章將從多個方面對Python磁盤操作進行詳細闡述,包括文件讀寫、文件夾創建、刪除、文件搜索與遍歷、文件重命名、移動、複製、文件權限修改等常用操作。 一、文件讀寫操作 文件讀寫…

    編程 2025-04-29

發表回復

登錄後才能評論