首頁 >後端開發 >Python教學 >如何使用 pd.melt() 將 Pandas DataFrame 從寬格式重塑為長格式?

如何使用 pd.melt() 將 Pandas DataFrame 從寬格式重塑為長格式?

Susan Sarandon
Susan Sarandon原創
2024-12-22 14:43:14670瀏覽

How Can I Reshape a Pandas DataFrame from Wide to Long Format Using `pd.melt()`?

使用Pandas 將列轉換為行

此問題解決了將CSV 資料集(其中日期相關資訊分佈在多個欄位中)轉換為每個日期的格式的需求有自己的行。為了實現此轉換,使用者使用 pd.melt 函數。

原始CSV 結構類似:

location    name    Jan-2010    Feb-2010    March-2010
A           "test"  12          20          30
B           "foo"   18          20          25

所需的結果是一個包含位置、名稱、日期和列的表格值:

location    name    Date        Value
A           "test"  Jan-2010    12       
A           "test"  Feb-2010    20
A           "test"  March-2010  30
B           "foo"   Jan-2010    18       
B           "foo"   Feb-2010    20
B           "foo"   March-2010  25

pd. melt 函數提供了重組資料的方法。它需要幾個參數:

  • id_vars:在表格融化時保持不變的欄位。在本例中,位置和名稱。
  • var_name:將保存原始列名稱(與熔化之前相同)的新欄位的名稱。在本例中,為 Date.
  • value_name:將保存原始資料列中的值的列的名稱。在本例中,值。
df.melt(id_vars=["location", "name"],
        var_name="Date",
        value_name="Value")

產生的 DataFrame 與所需的輸出匹配,每個月現在佔據單獨的行。

以上是如何使用 pd.melt() 將 Pandas DataFrame 從寬格式重塑為長格式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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