Python 如何重塑此数据帧

Python 如何重塑此数据帧,python,pandas,reshape,Python,Pandas,Reshape,我需要像这样重塑数据帧: nam code date1 date2 0 a 1 1/1 1/2 1 b 3 3/4 4/5 但是在这种情况下,df.stack似乎是无用的 期望输出: nam code date 0 a 1 1/1 1 a 1 1/2 2 b 3 3/4 3 b 3 4/5 您可以使用lreshape,按列nam,列和最后一列: 另一种解决方案是,按列nam删除列变量,

我需要像这样重塑数据帧:

  nam  code date1 date2
0   a     1   1/1   1/2
1   b     3   3/4   4/5
但是在这种情况下,
df.stack
似乎是无用的

期望输出:

  nam  code date
0   a     1  1/1
1   a     1  1/2
2   b     3  3/4
3   b     3  4/5

您可以使用
lreshape
,按列
nam
,列和最后一列:

另一种解决方案是,按列
nam
删除列
变量
,最后:

编辑:

现在未记录,但将来可能会被删除()


可能的解决方案是将所有3个函数合并为一个-可能是
melt
,但现在还没有实现。也许是新版本的熊猫。然后我的答案将被更新。

我不知道lreshape。这是有文档记录的吗?请尝试使用
spyder
帮助(pd.lreshape)
,但它还没有很好的文档记录。这肯定比重塑numpy数组并返回数据帧要好。很高兴知道。谢谢。:)根据文档字符串(使用
):
def lreshape(数据、组、dropna=True、label=None):“将长格式数据重塑为宽格式。数据帧的广义逆格式。pivot
@Ivon Ding-如果我的回答有帮助,请不要忘记。谢谢。
print pd.lreshape(df, {'date': ['date1', 'date2']})
        .sort_values('nam')
        .reindex_axis(['nam','code','date'], axis=1)
        .reset_index(drop=True)

  nam  code date
0   a     1  1/1
1   a     1  1/2
2   b     3  3/4
3   b     3  4/5
print pd.melt(df, id_vars=['nam','code'], value_name='date')
        .drop('variable', axis=1)
        .sort_values('nam')
        .reset_index(drop=True)

  nam  code date
0   a     1  1/1
1   a     1  1/2
2   b     3  3/4
3   b     3  4/5