在数据分析中,重组数据集以提高可读性和分析能力非常有用。常见的转换涉及将列转换为行。本文介绍如何使用 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中文网其他相关文章!