我正在寻找一个可以实现以下目标的函数。最好通过一个例子来展示。考虑:
pd.DataFrame([ [1, 2, 3 ], [4, 5, np.nan ]], columns=['x', 'y1', 'y2'])
看起来像:
x y1 y2
0 1 2 3
1 4 5 NaN
我想折叠y1
and y2
列,必要时延长 DataFrame,以便输出为:
x y
0 1 2
1 1 3
2 4 5
也就是说,任一之间的每个组合占一行x
and y1
, or x
and y2
。我正在寻找一个可以相对有效地完成此操作的函数,因为我有多个y
s 和许多行。
您可以使用stack把事情做好,即
pd.DataFrame(df.set_index('x').stack().reset_index(level=0).values,columns=['x','y'])
x y
0 1.0 2.0
1 1.0 3.0
2 4.0 5.0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)