May-08-2019, 12:10 PM
Hi,
I have the following data:
I want to reshape my data from wide to long to get the following output:
I have the following data:
import pandas as pd import numpy as np data = [ ['Dog', 5, 0.25,5.5,0.23], ['Cat', 3, 0.15,2.8,0.17],] df = pd.DataFrame(columns=["Type", "Weight_Apr_18", "Factor_Apr_18", "Weight_May_18", "Factor_May_18",], data=data)But for all the months in 2018.
I want to reshape my data from wide to long to get the following output:
import pandas as pd import numpy as np data = [ ['Dog', 5, 0.25,'Apr_18'], ['Dog', 5.5, 0.23,'May_18'], ['Cat', 3, 0.15,'Apr_18'], ['Cat',2.8,0.17,'May_18']] df2 = pd.DataFrame(columns=["Type", "Weight", "Factor","Period"], data=data)So I try to melt my data as follows:
df = df.melt(id_vars=['Type'])However, that gives me a column called variable which has both the weight and the factor as well as the date. Is there a way getting my desired output from melt?