I have a dataframe like this
NSW VIC
0 6718023 5023203
1 6735528 5048207
2 6742690 5061266
3 6766133 5083593
4 6786160 5103965
Using melt
pd.melt(df)
Out[318]:
variable value
0 NSW 6718023
1 NSW 6735528
2 NSW 6742690
3 NSW 6766133
4 NSW 6786160
5 VIC 5023203
6 VIC 5048207
7 VIC 5061266
8 VIC 5083593
9 VIC 5103965
Using df.unstack
df = df.unstack().to_frame().reset_index(level=0).iloc[:, [-1, 0]]
df.columns = [0, 1] # or whatever else you please
df
0 1
0 6718023 NSW
1 6735528 NSW
2 6742690 NSW
3 6766133 NSW
4 6786160 NSW
0 5023203 VIC
1 5048207 VIC
2 5061266 VIC
3 5083593 VIC
4 5103965 VIC
FOMO
pd.DataFrame(dict(
value=df.values.ravel(order='F'),
variable=df.columns.repeat(len(df))
))
value variable
0 6718023 NSW
1 6735528 NSW
2 6742690 NSW
3 6766133 NSW
4 6786160 NSW
5 5023203 VIC
6 5048207 VIC
7 5061266 VIC
8 5083593 VIC
9 5103965 VIC
df.stack().reset_index(level=0, drop=True).sort_index()
Output:
NSW 6718023
NSW 6735528
NSW 6742690
NSW 6766133
NSW 6786160
VIC 5023203
VIC 5048207
VIC 5061266
VIC 5083593
VIC 5103965
dtype: int64