In pandas, dataframes can be transformed from a wide format to a long format. This is useful when wanting to merge the dataframe with another one based on shared columns and dates.
Consider the following dataframe:
AA BB CC date 05/03 1 2 3 06/03 4 5 6 07/03 7 8 9 08/03 5 7 1
To transform this dataframe into a long format, use either pandas.melt or pandas.DataFrame.melt.
df = pd.DataFrame({ 'date' : ['05/03', '06/03', '07/03', '08/03'], 'AA' : [1, 4, 7, 5], 'BB' : [2, 5, 8, 7], 'CC' : [3, 6, 9, 1] }).set_index('date')
To convert, reset the index and then melt:
df = df.reset_index() pd.melt(df, id_vars='date', value_vars=['AA', 'BB', 'CC'])
Alternatively, use .reset_index after .melt to remove the need to specify value_vars.
dfm = df.melt(ignore_index=False).reset_index()
The resulting dataframe would look like:
date variable value 0 05/03 AA 1 1 06/03 AA 4 2 07/03 AA 7 3 08/03 AA 5 4 05/03 BB 2 5 06/03 BB 5 6 07/03 BB 8 7 08/03 BB 7 8 05/03 CC 3 9 06/03 CC 6 10 07/03 CC 9 11 08/03 CC 1
The above is the detailed content of How to Reshape Data from Wide to Long Format in Pandas?. For more information, please follow other related articles on the PHP Chinese website!