Input
dict_table = {'Table1': [1, 2,], 'Table2': [3, 4, 5], 'Table3': [6, 7, 8, 9, 10, 11]}
Result
| Table_name | Table_value | New_Column |
|---|---|---|
| Table1 | 1 | Table1 |
| Table1 | 2 | Table1 |
| Table2 | 3 | Table2 |
| Table2 | 4 | Table2 |
| Table2 | 5 | Table2 |
| Table3 | 6 | Table3 |
| Table3 | 7 | Table3 |
| Table3 | 8 | Table3 |
| Table3 | 9 | Table3 |
| Table3 | 10 | Table3 |
| Table3 | 11 | Table3 |
>Solution :
You can get the result from the dictionary using:
out = (pd.Series(dict_table).explode()
.rename_axis('Table_name').reset_index(name='Table_value')
)
Or:
out = pd.DataFrame([[k, v] for k, l in dict_table.items() for v in l],
columns=['Table_name', 'Table_value'])
Output:
Table_name Table_value
0 Table1 1
1 Table1 2
2 Table2 3
3 Table2 4
4 Table2 5
5 Table3 6
6 Table3 7
7 Table3 8
8 Table3 9
9 Table3 10
10 Table3 11