I have a dataset similar to the one below:
tag1 | Desc | 07/07/23 | 14/07/23 |
---|---|---|---|
TVG | text1 | 153 | 35 |
UGY | text2 | 5 | 88 |
EXT | text3 | 46 | 46 |
My aim is to have the end result be:
tag1 | Desc | Value | Date |
---|---|---|---|
TVG | text1 | 153 | 07/07/23 |
TVG | text1 | 35 | 14/07/23 |
UGY | text2 | 5 | 07/07/23 |
UGY | text2 | 88 | 14/07/23 |
EXT | text3 | 46 | 07/07/23 |
EXT | text3 | 46 | 14/07/23 |
I having a hard time accurately describing what I want to do verbally, but effectively I want to tie the date values and their values to the rows based on the tag and the description. I will add more detail and clarity as I am able, but any assistance would be greatly appreciated.
CodePudding user response:
You can use .melt()
:
df.melt(["tag1", "Desc"], var_name="Date", value_name="Value")
This outputs:
tag1 Desc Date Value
0 TVG text1 07/07/23 153
1 UGY text2 07/07/23 5
2 EXT text3 07/07/23 46
3 TVG text1 14/07/23 35
4 UGY text2 14/07/23 88
5 EXT text3 14/07/23 46