python - 对for循环的理解

时间:2016-06-08 02:12:49

标签: python pandas

我在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他们没有出现在数据帧标题中,并且没有在其他任何地方指定?

2 个答案:

答案 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():