我正在寻找一个功能,实现以下。最好用一个例子来说明。考虑:
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
和y2
列,必要时延长DataFame,以便输出:
x y
0 1 2
1 1 3
2 4 5
也就是说,对于x
和y1
,或者x
和y2
之间的每个组合,一行。我正在寻找一个相对高效的函数,因为我有多个y
和许多行。你知道吗
Tags:
您可以使用^{} 来完成任务,即
根据每行中非空值的计数重复第一列中的所有项。然后简单地使用其他列中剩余的notnull值创建最终的数据帧。可以使用
DataFrame.count()
方法对非空值进行计数,numpy.repeat()
根据相应的计数数组重复数组。你知道吗演示:
这是一个基于NumPy的,因为你在寻找性能-
样本运行-
如果
y
列总是从第二列开始一直到最后,那么我们可以简单地对数据帧进行切片,从而进一步提高性能,就像这样-相关问题 更多 >
编程相关推荐