我有以下数据集:
名为:2,3,4 ... 9的列填充有彼此重叠的主题名称。网页浏览量是一个结果变量。

        2                           3                       Pageviews
0       Financial Services          Consumer Products       4106.0
1       Consumer Products           ...                     3368.0
2       Consumer Products           ...                     1025.0
3       Collaboration               ...                     7840.0
4       Future of Supply Chains     ...                     2076.0


我想将每个主题列(2,3,4,...)与Pageviews一起切片并附加它们,以便仅创建一个带有1个主题列和Pageviews的数据框。

我习惯在Stata中循环,您可以使用x在列名中循环,但是我知道与Pyhton完全不同。

我开始

for x in range(2, 9):
    df_x = df[['Pageviews',  df.x]]


但Python无法识别df.x

如何遍历列名?是否可以使用迭代器创建新的数据框?

谢谢!

编辑

我想要的输出是

                                       Col        Pageviews
0                           Financial Services      4106.0
1                            Consumer Products      3368.0
2                            Consumer Products      1025.0
3                                 Collaboration     7840.0
4                      Future of Supply Chains      2076.0
5                          Future of Reporting      2123.0
6                    Sustainability Management     15576.0
7                                 Human Rights        52.0
8                                      BSR News      903.0
9                       Energy and Extractives      1232.0
10                                  HERproject       616.0
11                   Sustainability Management     10697.0


其中col是附加第2、3、4 ...列的结果,而Pageviews是附加相应的Pageviews列的结果。

最佳答案

使用melt

df.melt('Pageviews').drop('variable',1)
Out[644]:
    Pageviews                 value
0        1210      ConsumerProducts
1        1528         Collaboration
2        1716     FinancialServices
3        1403         Collaboration
4        1090      ConsumerProducts
5        1210      ConsumerProducts
6        1528  FutureofSupplyChains
7        1716      ConsumerProducts
8        1403     FinancialServices
9        1090  FutureofSupplyChains
10       1210     FinancialServices
11       1528     FinancialServices
12       1716         Collaboration
13       1403  FutureofSupplyChains
14       1090     FinancialServices

10-07 21:35