我已经多次在熊猫中进行数据透视,但是从来没有像现在这样。这是我拥有的数据的示例:
id|a_1|b_1|a_2|b_2
x | 0 | 2 | 3 | 1
y | 1 | 0 | 1 | 4
z | 4 | 2 | 2 | 3
data = [['x',0,2,3,1],['y',1,0,1,4],['z',4,2,2,3]]
df = pd.DataFrame(data,columns=['id','a_1','b_1','a_2','b_2'])
我想旋转以使列同步,例如:
id|col|1|2|
x | a |0|3|
x | b |2|1|
y | a |1|1|
y | b |0|4|
z | a |4|2|
z | b |2|3|
这甚至可能吗?我当时想将a_1,b_1与a_2,b_2分开旋转,然后合并它们,但是即使如此,我也不是100%如何做到这一点
答案 0 :(得分:2)
修改完列之后,问题就变成了wide_to_long
df.columns=df.columns.str.split('_').map(lambda x : '_'.join([x[-1],x[0]]))
Yourdf=pd.wide_to_long(df,['1','2'],i='id_id',j='col',sep='_',suffix='\w+').reset_index()
Yourdf
Out[52]:
id_id col 1 2
0 x a 0 3
1 y a 1 1
2 z a 4 2
3 x b 2 1
4 y b 0 4
5 z b 2 3