Я бы хотел растопить DataFrame без использования циклов. Предположим, у меня есть DataFrame, который выглядит примерно так:
df = pd.DataFrame({'var1': [1,2,3,4,5]*100,
'var2': [1,2,3,4,5]*100,
'col1': ['a','b']*250,
'col2': ['c','d']*250,})
var1 var2 col1 col2
0 1 1 a c
1 2 2 b d
2 3 3 a c
3 4 4 b d
4 5 5 a c
.. ... ... ... ...
495 1 1 b d
496 2 2 a c
497 3 3 b d
498 4 4 a c
499 5 5 b d
И теперь я хочу растопить данные:
df.melt(value_vars=['var1', 'var2'], var_name='var', id_vars=['col1', 'col2'])
col1 col2 var value
0 a c var1 1
1 b d var1 2
2 a c var1 3
3 b d var1 4
4 a c var1 5
.. ... ... ... ...
995 b d var2 1
996 a c var2 2
997 b d var2 3
998 a c var2 4
999 b d var2 5
Можно ли объединить данные без использования каких-либо циклов в один столбец с id_vars? Так что это будет выглядеть примерно так:
col var value
0 a var1 1
1 b var1 2
2 a var1 3
3 b var1 4
4 a var1 5
5 c var2 1
6 d var2 2
7 c var2 3
8 d var2 4
9 c var2 5
.. .. .... ..