Pandas 的 melt
函数可以将数据从宽格式(每个观测值形成一列)转换为长格式(每个观测值形成一行)。这在某些情况下,特别是在数据需要以“堆叠”的形式进行分析时,非常有用。
melt
方法可以将宽格式的 DataFrame 转换为长格式。你可以指定保留的列(id_vars
),以及新的列名(var_name
和 value_name
)。# 由于代码执行环境重置,需要重新导入 pandas 并准备数据
import pandas as pd
# 示例数据
data_wide_to_long = {
'Date': ['2023-01-01', '2023-01-02'],
'Sales_A': [200, 210],
'Sales_B': [150, 160]
}
df_wide_to_long = pd.DataFrame(data_wide_to_long)
# 将数据从宽格式转换为长格式
long_format = df_wide_to_long.melt(id_vars='Date', var_name='Product', value_name='Sales')
df_wide_to_long, long_format
在这个示例中,我们使用 melt
方法将 DataFrame 从宽格式转换为长格式。
原始宽格式 DataFrame (df_wide_to_long
):
Date Sales_A Sales_B
0 2023-01-01 200 150
1 2023-01-02 210 160
转换为长格式后 (long_format
):
Date Product Sales
0 2023-01-01 Sales_A 200
1 2023-01-02 Sales_A 210
2 2023-01-01 Sales_B 150
3 2023-01-02 Sales_B 160
这个结果显示了如何将宽格式数据转换为长格式,其中每个观测值都转换成了一行。这种转换对于某些类型的数据分析非常重要。