将列转换为Pandas中的1列

时间:2016-01-19 17:39:36

标签: python pandas dataframe

Sample Data

我对转置(融化或堆叠?)和加入数据集有疑问。

我有3个数据帧(上图),我想转换并加入它们以产生我右边的结果。

我一直在阅读有关堆叠,融化,转置和合并的内容,我感到有些困惑。

获得理想结果的建议?

谢谢!

1 个答案:

答案 0 :(得分:2)

从:

开始
df1 = df1.set_index('Country')

         2012  2013  2014
Country                  
AFG         1     4     7
AGO         2     5     8
ALF         3     6     9

df2 = df1.mul(2)
df3 = df1.mul(3)

您可以.stack()pd.concat()

df = pd.concat([df1.stack(), df2.stack(), df3.stack()], axis=1)
df.columns = ['A', 'B', 'C']
df.reset_index().rename(columns={'level_1': 'Year'})


  Country  Year  A   B   C
0     AFG  2012  1   2   3
1     AFG  2013  4   8  12
2     AFG  2014  7  14  21
3     AGO  2012  2   4   6
4     AGO  2013  5  10  15
5     AGO  2014  8  16  24
6     ALF  2012  3   6   9
7     ALF  2013  6  12  18
8     ALF  2014  9  18  27