我在python代码中有以下行:
for tradeName, trade in data.iterrows():
...
"数据"是以下列形式的熊猫数据框架:
timestamp open high low close volume
2000-01-03 00:00:00 1481.50 1481.50 1480.50 1480.50 4
2000-01-03 00:30:00 1480.25 1480.50 1479.75 1480.50 4
2000-01-03 01:00:00 1480.50 1481.50 1480.50 1481.25 7
我不明白循环在这种情况下是如何工作的,尤其是表达式for tradeName, trade...
那些名字是指什么? esp他们没有出现在数据帧标题中,并且没有在其他任何地方指定?
答案 0 :(得分:4)
这里有两件事情,第一件是拆包,第二件是循环。
您可以在元组中解压缩元素并按如下方式同时分配它们:
a,b,c = tuple([1,2,3])
print(b)
此外,如果您有一个可迭代的元组,您可以按顺序解包每个元组。
a = [1,2,3]
b = ['a','b','c']
for x,y in zip(a,b):
print(x)
print(y)
# to see what zip(a,b) is
print([i for i in zip(a,b)])
因此在循环中,iterable中的每个元组都被解压缩到那些变量中,并且在循环的每次迭代中都可用!
这可以解释一下吗?
答案 1 :(得分:2)
贸易名称和贸易只是自我定义"循环"变量来获取data.iterrows()将返回的相应值。 TradName是指数和交易是指数的系列。
以下这些内容应返回相同的结果:
for tradeName, trade in data.iterrows():
for x, y in data.iterrows():
for apple, orange in data.iterrows():