如果 pandas 中没有其他唯一列,如何将多个列转换为单独的 rows/values?

How do I convert multiple columns to individual rows/values if there is no other unique column in pandas?

例子如下

2019 年 Q01 利率、数值 2019 年 2 季度的利率、价值 2019 年第 3 季度利率、数值 2019 年第四季度利率、数值 2019 年 Q01 销售额,数值 2019 年 Q02 销售额,数值 2019 年 Q03 销售额,数值 2019 年第四季度销售额,价值
100 150 200 300 400 450 500 600

结果应该是

期间 费率、价值 销售额,价值
2019Q01 100 400
2019Q02 150 450
2019Q03 200 500
2019Q04 300 600

我试过 melt 和 wide_to_long,但无法得到结果。谢谢

尝试通过 columns 属性然后 stack():

df.columns=df.columns.str.replace('values','').str.split(', ',expand=True)
df=df.stack().droplevel(0).rename_axis(index='Period').add_suffix(', values').reset_index()

或按照 @Cytorak

的建议
df.columns = df.columns.str.rsplit(' ', 1, expand=True)
df=df.stack().droplevel(0).rename_axis(index='Period').reset_index()

df的输出:

    Period      Rates, values   Sales, values
0   2019Q01     100             400
1   2019Q02     150             450
2   2019Q03     200             500
3   2019Q04     300             600