0

我正在尝试为数据帧的每一行找到三个最小值,并将它们放在单独的数据帧中。我不需要知道它们来自哪一列,但我确实需要循环遍历 m 行,其中 m 可能会因我使用的每个数据帧而改变。

我想使用 heaps.nsmallest,但我不确定如何遍历每一行并将结果每次都添加到数据帧的新行中。我似乎只得到一行结果作为输出。

 for x in range(len(df1)):
        heap=pd.DataFrame(heapq.nsmallest(3, df1[x]))

我希望这会遍历 x 的值,但它只产生一列具有 len(df1) 行的列。我认为它会覆盖以前的结果,因为它总是给出最后一行的三个最小值。

4

1 回答 1

1
df2 = pd.DataFrame([heapq.nsmallest(3, df1[x])
                   for x in range(len(df1))])

或者,使用sorted(df1[x])[:3]

于 2019-05-26T22:56:14.837 回答