問題:
您有一個巨大的數據幀,其中包含超過100 萬條表示數據的記錄來自60 名參與者的實驗。每個參與者都有一個唯一的代碼儲存在資料幀的「name」變數中。您的目標是將資料幀分為 60 個較小的資料幀,每個參與者一個。
原始嘗試:
您透過名為 splitframe 的自訂函數實現此目的的初始方法沒有實現執行後一小時內不會產生結果。該函數旨在循環遍歷資料幀,迭代地將行附加到較小的資料幀並將它們添加到列表中,直到識別出新的參與者,此時它將為後續參與者創建一個新的資料幀。
使用資料幀切片的解決方案:
您可以採用更有效的方法,而不是迭代地分割資料幀資料幀切片。操作方法如下:
import pandas as pd # Create a list of unique participant names unique_names = data['name'].unique() # Initialize a dictionary to store the split dataframes data_dict = {} # Iterate over the unique names for name in unique_names: # Create a new dataframe by slicing the original dataframe data_dict[name] = data[data['name'] == name]
結果:
此程式碼將建立一個名為 data_dict 的字典。字典中的每個鍵代表一個參與者名稱,對應的值是一個 pandas 資料幀,其中包含該特定參與者的所有資料。您可以使用以下語法存取每位參與者的資料框:
participant_data = data_dict['ParticipantName']
以上是如何根據參與者 ID 有效地將大型 Pandas DataFrame 拆分為較小的 DataFrame?的詳細內容。更多資訊請關注PHP中文網其他相關文章!