我有一个包含 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
