首頁 >後端開發 >Python教學 >如何透過參與者 ID 有效地將大型 DataFrame 拆分為單獨的 DataFrame?

如何透過參與者 ID 有效地將大型 DataFrame 拆分為單獨的 DataFrame?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-30 10:25:09774瀏覽

How Can I Efficiently Split a Large DataFrame into Individual DataFrames by Participant ID?

根據參與者ID 將大型DataFrame 拆分為單獨的DataFrame

考慮一個場景,其中您擁有一個巨大的DataFrame,其中包含涉及60 個實驗的數據參與者。您的目標是將這個龐大的 DataFrame 分成 60 個不同的 DataFrame,每個 DataFrame 代表一個單獨的參與者。一個重要的變數「名稱」唯一標識 DataFrame 中的每個參與者。

使用自訂函數「splitframe」完成此任務的嘗試已被證明是不成功的,這引發了更有效的解決方案的問題。

進階方法:資料幀切片

另一種策略涉及採用切片技術來分離資料幀。具體方法如下:

  1. 使用 DataFrame 的「Names」欄位產生參與者姓名的獨特清單(「UniqueNames」)。
  2. 利用 DataFrame 建立一個字典來容納各個 DataFrame將「UniqueNames」清單作為鍵。
  3. 迭代每個參與者名稱並將相應的資料分配給單獨的字典中的 DataFrame。

這種利用切片的方法提供了一種更直接、更有效率的方法來為每個參與者創建單獨的DataFrame:

# Create a DataFrame with a 'Names' column
data = pd.DataFrame({
    'Names': ['Joe', 'John', 'Jasper', 'Jez'] * 4,
    'Ob1': np.random.rand(16),
    'Ob2': np.random.rand(16)
})

# Extract unique participant names
UniqueNames = data['Names'].unique()

# Initialize a dictionary to store individual DataFrames
DataFrameDict = {elem: pd.DataFrame() for elem in UniqueNames}

# Populate the dictionary with individual DataFrames
for key in DataFrameDict.keys():
    DataFrameDict[key] = data[data['Names'] == key]

訪問單獨的DataFrame

要存取特定參與者的特定DataFrame,只需使用與參與者姓名,如下所示:

DataFrameDict['Joe']

以上是如何透過參與者 ID 有效地將大型 DataFrame 拆分為單獨的 DataFrame?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn