首頁 > 後端開發 > Python教學 > 如何有效分解 Pandas DataFrame 中類似清單的列?

如何有效分解 Pandas DataFrame 中類似清單的列?

Barbara Streisand
發布: 2024-11-27 15:44:11
原創
948 人瀏覽過

How to Effectively Explode List-Like Columns in Pandas DataFrames?

爆炸類似清單的欄位:擴充資料框指南

問題:

問題:

在Pandas資料框,某些儲存格可能包含多個值的清單。目標是轉換資料框,使每個清單元素佔據單獨的行,同時保留其他列中的值。

解決方案:

方法1: Repeat()

import pandas as pd
import numpy as np

df = pd.DataFrame(
    {'trial_num': [1, 2, 3, 1, 2, 3],
     'subject': [1, 1, 1, 2, 2, 2],
     'samples': [list(np.random.randn(3).round(2)) for i in range(6)]
    }
)

# Expand 'samples' column into separate rows using repeat()
df_exploded = df.assign(
    samples=df['samples'].str.join(',').str.split(',')
).explode('samples')

df_exploded = df_exploded.reset_index(drop=True)

# Add sample_num column to track list element order
df_exploded['sample_num'] = df_exploded.groupby('trial_num').cumcount()
登入後複製
Pandas 0.25之前,常用來爆炸(eat()方法進行爆炸list columns:

方法 2:explode() (Pandas >= 0.25)

df.explode('samples').reset_index(drop=True)
登入後複製
隨著 Pandas 0.25 的發布,.explode()方法提供了一個優雅的解決方案:

此方法自動處理空列表並保留 NaN,確保全面轉換。

注意:
  • 基於重複的方法可以處理字串爆炸列,但需要在分隔符號上進行拆分首先。
  • explode() 方法在某個位置爆炸單一列時間。
分解的資料幀可能需要進一步處理以建立唯一索引並對列表元素重新編號。

以上是如何有效分解 Pandas DataFrame 中類似清單的列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板