Python 多次融化数据帧

Python 多次融化数据帧,python,pandas,pivot,reshape,melt,Python,Pandas,Pivot,Reshape,Melt,我有一个数据帧df: Item Name Location Jan-Units Feb-Units Mar-Units Jan-Rev Feb-Rev Mar-Rev Jan-Trl Feb-Trl Mar-Trl 123 ABC CA 20 30 40 100 150 200 1.00 1.50 2.00 456 DEF AZ 2

我有一个数据帧df:

Item   Name  Location  Jan-Units  Feb-Units  Mar-Units  Jan-Rev  Feb-Rev  Mar-Rev  Jan-Trl  Feb-Trl  Mar-Trl
123    ABC   CA        20         30        40          100      150      200      1.00     1.50     2.00
456    DEF   AZ        25         35        45          125      175      225      1.25     1.75     2.25
我需要多次熔化这个df,保持前3列相同,并根据熔化列的前3个字符添加一个日期列。输出应为:

Item    Name  Location  Date        Units  Rev   Trl
123     ABC   CA        01/01/2020  20     100   1.00
123     ABC   CA        02/01/2020  30     150   1.50
123     ABC   CA        03/01/2020  40     200   2.00
456     DEF   AZ        01/01/2020  25     125   1.25
456     DEF   AZ        02/01/2020  35     175   1.75
456     DEF   AZ        03/01/2020  45     225   2.25

实际df包含2020年的所有月份,数百行首先重塑列,然后使用:

df.columns = ["-".join(i.split("-")[::-1]) for i in df.columns]

print (pd.wide_to_long(df, stubnames=["Units","Rev","Trl"],
                       i=["Item","Name"], j="Date",
                       sep="-", suffix="\w+")
       .reset_index())

   Item Name Date Location  Units  Rev   Trl
0   123  ABC  Jan       CA     20  100  1.00
1   123  ABC  Feb       CA     30  150  1.50
2   123  ABC  Mar       CA     40  200  2.00
3   456  DEF  Jan       AZ     25  125  1.25
4   456  DEF  Feb       AZ     35  175  1.75
5   456  DEF  Mar       AZ     45  225  2.25