【发布时间】:2020-07-24 05:05:27
【问题描述】:
全部,
我目前正在计算一系列方形 pandas DataFrame 对象作为引导算法的一部分,虽然我可以正确计算它,但迄今为止我还没有高效地计算它。
目前,数据帧的计算方式如下,使用函数 func,该函数根据数据的性质而有所不同:
frame = pandas.DataFrame(0, index=idx, columns=idx)
for row in idx:
for col in idx:
frame.loc[row, col] = func(row, col)
不幸的是,构建的方阵最终可能会非常大(最多 10k 个单元),因此上述运行可能会非常缓慢。有什么方法可以比使用 pandas 和/或 numpy 的嵌套循环方法更有效地执行此构造?
【问题讨论】:
-
@Eric Truett,不,这不是同一个问题,因为 OP 希望将函数应用于索引值,而不是单元格值本身。
-
如果您在 NumPy 中将其计算为
ndarray,而不使用 pandas,它应该会快得多。最后,您仍然可以将结果转换为 DataFrame。