在資料分析中,重組資料集以提高可讀性和分析能力非常有用。常見的轉換涉及將列轉換為行。本文介紹如何使用 Pandas 函式庫執行此操作。
考慮一個在列標題中儲存了位置和日期特定資訊的資料集,如下所示:
| 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 |
為了實現此轉換,Pandas 提供了熔化功能。只需將 Melt 套用到 DataFrame,指定要保留的欄位作為行標識符 (id_vars) 以及新列的列標題(var_name 和 value_name)。
import pandas as pd df.melt(id_vars=["location", "name"], var_name="Date", value_name="Value")
對於0.20 之前的Pandas 版本,略有不同需要不同的方法,包括融合和排序的組合:
df2 = pd.melt(df, id_vars=["location", "name"], var_name="Date", value_name="Value") df2 = df2.sort(["location", "name"])
記住重置索引以確保乾淨輸出:
df2.reset_index(drop=True)
該技術提供了一種重塑資料框的便捷方法,有助於表格資料的分析和呈現。
以上是如何使用 Pandas Melt() 將列轉換為行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!