首頁 >後端開發 >Python教學 >Pandas\' .explode()` 方法如何將基於列表的列轉換為單獨的行?

Pandas\' .explode()` 方法如何將基於列表的列轉換為單獨的行?

Linda Hamilton
Linda Hamilton原創
2024-11-29 20:25:11958瀏覽

How Can Pandas' `.explode()` Method Transform List-Based Columns into Separate Rows?

利用Pandas 的.explode() 方法將列表解包為行

在Pandas 中,當您想要每個列表都包含列時,處理包含清單列的DataFrame 可能會很有挑戰性清單元素表示為單獨的行。這就是 .explode() 方法發揮作用的地方。

Pandas ≥ 0.25

對於 Pandas 0.25 及更高版本,遊戲規則改變者是 .explode( ) 方法。它允許您將類似清單的列分解為單獨的行,從而將其從長形式轉換為寬形式。

import pandas as pd

# Sample DataFrame
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)]
})

# Explode using .explode()
exploded_df = df.explode('samples')

# Reset index to be monotonically increasing (optional)
exploded_df = exploded_df.reset_index(drop=True)

print(exploded_df)

# Output:
#    subject  trial_num  sample
# 0        1          1    0.57
# 1        1          1   -0.83
# 2        1          1    1.44
# 3        1          2   -0.01
# 4        1          2    1.13
# 5        1          2    0.36
# 6        1          3    1.18
# 7        2          1   -0.08
# 8        2          1   -4.22
# 9        2          1   -2.05
# 10       2          2    0.72
# 11       2          2    0.79
# 12       2          2    0.53
# 13       2          3    0.4
# 14       2          3   -0.32
# 15       2          3   -0.13

請注意,.explode() 一次對單一欄位進行操作。對於包含混合類型(例如列表和標量)的列,.explode() 表現得明智並保留空列表和 NaN。

以上是Pandas\' .explode()` 方法如何將基於列表的列轉換為單獨的行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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