I am having following data frame
INCIDENT | DATE | TITLE | ABS/FORECAST | DIRECTORY 098 | DIRECTORY 076 | DIRECTORY 027 |
---|---|---|---|---|---|---|
entity 1 | 26/4 | prior | absolute | nAn | 2389 | 2842 |
entity 2 | 26/4 | prior | forecasted | 2876 | 9200 | 6674 |
entity 2 | 26/4 | prior | absolute | nAn | 8356 | nAn |
entity 1 | 26/5 | prior | absolute | 1190 | 4544 | 7110 |
entity 2 | 26/5 | prior | absolute | 9182 | 8128 | 2726 |
entity 3 | 26/6 | prior | forecasted | nAn | 6373 | nAn |
entity 3 | 26/6 | prior | absolute | nAn | nAn | 7737 |
which is converted into long using melt
`df2 = pd.melt(df, id_vars=["INCIDENT", "TITLE", "ABS/FORECAST", "DATE"],
var_name="KPI", value_name="Value")`
which looks like this
INCIDENT | DATE | TITLE | ABS/FORECAST | KPI | Value |
---|---|---|---|---|---|
entity 1 | 26/4 | prior | absolute | DIRECTORY 098 | nAn |
entity 2 | 26/4 | prior | forecasted | DIRECTORY 098 | 2876 |
entity 2 | 26/4 | prior | absolute | DIRECTORY 098 | nAn |
entity 1 | 26/5 | prior | absolute | DIRECTORY 098 | 1190 |
entity 2 | 26/5 | prior | absolute | DIRECTORY 098 | 9182 |
entity 3 | 26/6 | prior | forecasted | DIRECTORY 098 | nAn |
entity 3 | 26/6 | prior | absolute | DIRECTORY 098 | nAn |
entity 1 | 26/4 | prior | absolute | DIRECTORY 076 | 2389 |
entity 2 | 26/4 | prior | forecasted | DIRECTORY 076 | 9200 |
entity 2 | 26/4 | prior | absolute | DIRECTORY 076 | 8356 |
entity 1 | 26/5 | prior | absolute | DIRECTORY 076 | 4544 |
entity 2 | 26/5 | prior | absolute | DIRECTORY 076 | 8128 |
entity 3 | 26/6 | prior | forecasted | DIRECTORY 076 | 6373 |
entity 3 | 26/6 | prior | absolute | DIRECTORY 076 | nAn |
entity 1 | 26/4 | prior | absolute | DIRECTORY 027 | 2842 |
entity 2 | 26/4 | prior | forecasted | DIRECTORY 027 | 6674 |
entity 2 | 26/4 | prior | absolute | DIRECTORY 027 | nAn |
entity 1 | 26/5 | prior | absolute | DIRECTORY 027 | 7110 |
entity 2 | 26/5 | prior | absolute | DIRECTORY 027 | 2726 |
entity 3 | 26/6 | prior | forecasted | DIRECTORY 027 | nAn |
entity 3 | 26/6 | prior | absolute | DIRECTORY 027 | 7737 |
now this needs to h=get converted into wide format where the directory has single unique row entry. I tried to use PIVOT FUNCTION, but due to the duplicity it throws error as: 'Incident' is not in list
df3= df2.pivot(index='KPI',columns=["Incident", "DATE", "ABS/FORECAST"], values= 'Value')