在 Pandas 中基于堆叠列来延长 DataFrame

2023-12-12

我正在寻找一个可以实现以下目标的函数。最好通过一个例子来展示。考虑:

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。我正在寻找一个可以相对有效地完成此操作的函数,因为我有多个ys 和许多行。


您可以使用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(使用前将#替换为@)

在 Pandas 中基于堆叠列来延长 DataFrame 的相关文章

随机推荐