Skip to main content
 首页 » 编程设计

python之将 Pandas 数据框更改为平面格式

2025年05月04日23lonelyxmas

我有一个包含 100 列的 pandas 数据框,格式如下:

DateTime    2008_11  2008_12 
10/22/2008  2        NaN 
10/23/2008  1        NaN 
10/24/2008  3        4 
10/27/2008  4        6 
10/28/2008  NaN      5 

我想创建以下平面文件:

DateTime    Name      Value 
10/22/2008  2008_11   2 
10/23/2008  2008_11   1 
10/24/2008  2008_11   3 
10/27/2008  2008_11   4 
10/28/2008  2008_11   NaN 
10/22/2008  2008_12   NaN 
10/23/2008  2008_12   NaN 
10/24/2008  2008_12   4 
10/27/2008  2008_12   6 
10/28/2008  2008_12   5 

我不知道如何处理这个?

请您参考如下方法:

使用pandas.melt,将维护的列(这里的DateTime)设置为id_vars,所有列默认都会以长格式收集,标题在一列中,值在另一列中;您可以使用 var_name 和 value_name 分别重命名两列:

pd.melt(df, id_vars='DateTime', var_name='name') 
 
      DateTime    name  value 
0   10/22/2008  2008_11 2.0 
1   10/23/2008  2008_11 1.0 
2   10/24/2008  2008_11 3.0 
3   10/27/2008  2008_11 4.0 
4   10/28/2008  2008_11 NaN 
5   10/22/2008  2008_12 NaN 
6   10/23/2008  2008_12 NaN 
7   10/24/2008  2008_12 4.0 
8   10/27/2008  2008_12 6.0 
9   10/28/2008  2008_12 5.0