簡體   English   中英

在 pandas 中計算平方 dataframe 的最有效方法

[英]Most efficient way to compute a square dataframe in pandas

全部,

我目前正在計算一系列方形 pandas DataFrame 對象作為引導算法的一部分,雖然我可以正確計算它,但到目前為止我還沒有有效地計算它。

目前,數據幀的計算方式如下,使用 function 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 的嵌套循環方法更有效地執行此構造?

NumPy 應該更快,並且您可以使用嵌套列表推導而不是顯式循環:

import numpy as np

# example function
def func(i, j):
    return 10 * i + j

# example index
idx = [0, 1, 2, 3]

frame = np.array([[func(row, col) for col in idx] for row in idx])       
frame
array([[ 0,  1,  2,  3],
       [10, 11, 12, 13],
       [20, 21, 22, 23],
       [30, 31, 32, 33]])

如果需要,您當然可以將結果轉換為 DataFrame:

import pandas as pd
frame = pd.DataFrame(frame)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM