【发布时间】:2020-04-17 07:30:17
【问题描述】:
我有两个名为 a 和 b 的大列表。它们的大小均为 2000 个值。每个值都是具有 35136 个值的 DataFrame。
a = [Dataframe, Dataframe....] --> Size:2000
a[0] = [0, 0, 0, 2, 0, 0, 3, 0....] -->Name: colA, Size:35136
.
.
a[8] = []
.
.
b = [Dataframe, Dataframe....]
b[0] = [11, 0, 0, 0, 50, 0, 0, 11.....] -->Name: colB, Size:35136
我需要在两个列表和每个 DataFrame 中迭代更改 DataFrame。怎么做更快?
for j in range(0, 2000):
for i in range(0, 35136):
if len(a[j]) == 0:
b[j] = []
else:
if b[j]['colA'][i] != 0:
tmp = b[j]['colA'][i]
if (b[j]['colA'][i] == 0) & (a[j]['colB'][i] == 0):
b[j]['colA'][i] = tmp
所需的输出用于此输入:
b[0] = [11, 11, 11, 0, 50, 50, 0, 11.....] -->Name: colB, Size:35136
谢谢。
【问题讨论】:
-
请提供输入数据的最小示例,以便我们轻松运行和测试代码。
标签: python pandas performance