Python 3.x 按列出现的顺序将列值转换为行

Python 3.x 按列出现的顺序将列值转换为行,python-3.x,pandas,Python 3.x,Pandas,下面是我拥有的一个示例数据帧。我需要根据月份将每一行转换为多行 df = pd.DataFrame({'Jan': [100,200,300], 'Feb': [400,500,600], 'March':[700,800,900], }) 所需输出: 1月100日 二月四日 700年3月 1月200日 2月500日 800年3月 1月300日 2006年2月 900年3月

下面是我拥有的一个示例数据帧。我需要根据月份将每一行转换为多行

   df = pd.DataFrame({'Jan': [100,200,300],
                   'Feb': [400,500,600],
                   'March':[700,800,900],
                   })
所需输出:


1月100日
二月四日
700年3月
1月200日
2月500日
800年3月
1月300日
2006年2月
900年3月

尝试使用熊猫融化功能,但它所做的是将一月分组,然后是二月和三月。1月份会有3排,2月份会有3排,3月份也一样。但我想实现上述输出。有人能帮忙吗?

使用以下方法进行数据清理:

或者使用
numpy
-通过以下方式展平值并重复列名称:



谢谢这正是我所需要的。:)
df1 = (df.stack()
        .reset_index(level=0, drop=True)
        .rename_axis('months')
        .reset_index(name='val'))
df1 = pd.DataFrame({'months': np.tile(df.columns, len(df)),
                    'val': df.values.reshape(1,-1).ravel()})
print (df1)
  months  val
0    Jan  100
1    Feb  400
2  March  700
3    Jan  200
4    Feb  500
5  March  800
6    Jan  300
7    Feb  600
8  March  900