首頁 >後端開發 >Python教學 >如何融化和解凍 Pandas DataFrame:綜合指南?

如何融化和解凍 Pandas DataFrame:綜合指南?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-24 11:08:13155瀏覽

How to Melt and Unmelt Pandas DataFrames: A Comprehensive Guide?

如何融化 pandas 資料框?

融化資料框涉及將資料從寬格式轉換為長格式,其中多個欄位合併為一。

如何使用melt?

要在資料幀上使用melt,您可以使用pd.melt() 函數。此函數採用以下參數:

  • id_vars:指定應用作識別符的欄位。
  • value_vars:指定應熔化的欄位。如果未指定,則所有未設定為 id_vars 的欄位都會被融化。
  • var_name:指定將儲存變數名稱的資料列的名稱。
  • value_name:指定變數名稱將儲存值的資料列。

我什麼時候使用融化?

當您想要執行以下操作時,融化資料框非常有用:

  • 將資料從寬格式重塑為長格式。
  • 提取特定內容來自多列的值。
  • 建立一個整潔的資料集

如何解決特定的融化相關問題?

問題1:轉置資料幀

要轉置資料幀(例如,將列轉換為行),請使用下列命令code:

df.melt(id_vars=['Name', 'Age'], var_name='Subject', value_name='Grades')

問題2:選擇特定列進行熔化

要只融化特定列,請使用value_vars 參數,如下所示:

df.melt(id_vars=['Name', 'Age'], value_vars=['Math'], var_name='Subject', value_name='Grades')

問題3:分組和排序融化data

要將熔化的資料分組和排序,您可以使用groupby() 和sort_values() 函數:

df.melt(id_vars=['Name', 'Age']) \
 .groupby('Grades') \
 .agg(', '.join) \
 .sort_values('Grades')

問題4:取消熔化的資料框

要將熔化的資料框轉換回其原始格式,請使用ivot_table( ) 函數:

df.pivot_table("Grades", ['Name', 'Age'], 'Subject', aggfunc='first')

問題5:依名稱分組並分隔科目和成績

要按名稱分組並分隔科目和成績,請合併列使用melt(),然後使用groupby():

df.melt(id_vars=['Name', 'Age']) \
 .groupby('Name') \
 .agg(', '.join)

問題6: 融化整個資料框

要融化整個資料框,請省略value_vars 參數:

df.melt(var_name='Column', value_name='Value')

以上是如何融化和解凍 Pandas DataFrame:綜合指南?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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