I need to conduct time-series analysis on panel data. the data is currently formatted like the table below:
+------+---------+---------+---------+---------+---------+---------+---------+---------+
| | Q1 | Q2 | Q3 | Q4 | Q1 | Q2 | Q3 | Q4 |
+------+---------+---------+---------+---------+---------+---------+---------+---------+
| ID 1 | Value 1 | Value 1 | Value 1 | Value 1 | Value 2 | Value 2 | Value 2 | Value 2 |
| ID 2 | Value 1 | Value 1 | Value 1 | Value 1 | Value 2 | Value 2 | Value 2 | Value 2 |
| ID 3 | Value 1 | Value 1 | Value 1 | Value 1 | Value 2 | Value 2 | Value 2 | Value 2 |
| ID 4 | Value 1 | Value 1 | Value 1 | Value 1 | Value 2 | Value 2 | Value 2 | Value 2 |
+------+---------+---------+---------+---------+---------+---------+---------+---------+
I need the quarterly data on values 1 and 2 to stack like this:
+------+---------+---------+----+
| ID | X | Y | T |
+------+---------+---------+----+
| ID 1 | Value 1 | Value 2 | Q1 |
| ID 1 | Value 1 | Value 2 | Q2 |
| ID 1 | Value 1 | Value 2 | Q3 |
| ID 1 | Value 1 | Value 2 | Q4 |
| ID 2 | Value 1 | Value 2 | Q1 |
| ID 2 | Value 1 | Value 2 | Q2 |
| ID 2 | Value 1 | Value 2 | Q3 |
| ID 2 | Value 1 | Value 2 | Q4 |
| ID 3 | Value 1 | Value 2 | Q1 |
| ID 3 | Value 1 | Value 2 | Q2 |
| ID 3 | Value 1 | Value 2 | Q3 |
| ID 3 | Value 1 | Value 2 | Q4 |
| ID 4 | Value 1 | Value 2 | Q1 |
| ID 4 | Value 1 | Value 2 | Q2 |
| ID 4 | Value 1 | Value 2 | Q3 |
| ID 4 | Value 1 | Value 2 | Q4 |
+------+---------+---------+----+
The data set is very large, several thousands data points in total.
I'm a beginner, so i was lost.
stack, reset_indexdf.columns = [
df.columns.to_series().groupby(level=0).cumcount().map({0: 'X', 1: 'Y'}),
df.columns
]
df.stack().rename_axis(['ID', 'T']).reset_index()
ID T X Y
0 ID 1 Q1 Value 1 Value 2
1 ID 1 Q2 Value 1 Value 2
2 ID 1 Q3 Value 1 Value 2
3 ID 1 Q4 Value 1 Value 2
4 ID 2 Q1 Value 1 Value 2
5 ID 2 Q2 Value 1 Value 2
6 ID 2 Q3 Value 1 Value 2
7 ID 2 Q4 Value 1 Value 2
8 ID 3 Q1 Value 1 Value 2
9 ID 3 Q2 Value 1 Value 2
10 ID 3 Q3 Value 1 Value 2
11 ID 3 Q4 Value 1 Value 2
12 ID 4 Q1 Value 1 Value 2
13 ID 4 Q2 Value 1 Value 2
14 ID 4 Q3 Value 1 Value 2
15 ID 4 Q4 Value 1 Value 2
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With