在熊猫中,我具有以下数据框:
id1 id2 t1 l1 t2 l2 0 1 2 a b c d 1 3 4 g h i j
我想一次融化两列。也就是说,所需的输出是:
id1 id2 tz lz 0 1 2 a b 1 1 2 c d 2 3 4 g h 3 3 4 i j
我知道标准融化:
d.melt(id_vars=['id1', 'id2'], value_vars=['t1', 't2', 'l1', 'l2'])
但这会堆叠所有列
id1 id2 variable value 0 1 2 t1 a 1 3 4 t1 g 2 1 2 t2 c 3 3 4 t2 i 4 1 2 l1 b 5 3 4 l1 h 6 1 2 l2 d 7 3 4 l2 j
我如何一次融化两列?就像是:
d.melt(id_vars=['id1', 'id2'], value_vars={('t1', 'l1'): 'tz', ('t2', 'l2'): 'lz'})
会很好。
这是 wide_to_long
wide_to_long
pd.wide_to_long(df,['t','l'],i=['id1','id2'],j='drop').reset_index(level=[0,1]) Out[52]: id1 id2 t l drop 1 1 2 a b 2 1 2 c d 1 3 4 g h 2 3 4 i j