gpt4 book ai didi

python - 迭代构建 Pandas DataFrame 的最佳方式

转载 作者:行者123 更新时间:2023-12-05 02:57:04 28 4
gpt4 key购买 nike

假设我有一个正在循环的算法。它将返回未知数量的结果,我想将它们全部存储在 DataFrame 中。例如:

df_results = pd.DataFrame(columns=['x', 'x_squared'])

x = 0
x_squared = 1

while x_squared < 100:
x_squared = x ** 2

df_iteration = pd.DataFrame(data=[[x,x_squared]], columns=['x', 'x_squared'])
df_results = df_results.append(df_iteration, ignore_index=True)

x += 1

print(df_results)

输出:

     x  x_squared
0 0 0
1 1 1
2 2 4
3 3 9
4 4 16
5 5 25
6 6 36
7 7 49
8 8 64
9 9 81
10 10 100

问题是当我想进行大量迭代时。数学运算本身非常快。然而,当我们进行大循环时,数据帧的创建和附加变得非常慢。

我知道这个特殊的例子可以很容易地解决,而无需在每次迭代中使用数据帧。但是想象一个复杂的算法,它也对数据帧等执行操作。对我来说,有时一步一步地构建结果数据帧会更容易。哪种方法最好?

最佳答案

构建可从中创建数据框的字典列表效率更高。像这样:

dictList = []

x = 0
x_squared = 1

while x_squared < 100:
x_squared = x ** 2

dict1 = {}
dict1['x'] = x
dict1['x_squared'] = x_squared
dictList.append(dict1)
x += 1

df = pd.DataFrame(dictList)

关于python - 迭代构建 Pandas DataFrame 的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59947010/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com