2016-06-08 2 views
2

에 대한 이해 :파이썬 내가 파이썬 코드에 다음 줄을 가지고 루프

for tradeName, trade in data.iterrows(): 
    ... 

"데이터"있는 다음과 같은 형태의 팬더 dataframe :

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... 그 이름은 무엇입니까? 그들은 데이터 프레임 헤더에 나타나지 않으며 다른 곳에서는 지정되지 않는다는 것을 알고 있습니까?

+1

루프 상단에'print (tradeName, trade)'를 추가하여 변수가 무엇인지 확인해 보았습니까? – SethMMorton

+2

또는 [iterrows API] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.iterrows.html)를 살펴 보았습니까? "DataFrame 행을 (인덱스로 , 시리즈) 쌍. " – SethMMorton

+1

'iterrows'를주의하십시오. 대형 DataFrame을 사용하면 매우 느립니다. 'itertuples'은 데이터의 각 행에 대해 Series 객체를 생성 할 필요가 없으므로 ** 빠릅니다 ** 빠릅니다. – SethMMorton

답변

2

tradeName과 trade는 data.iterrows()가 반환 할 각 값을 얻기 위해 자체 정의 된 "루프"변수입니다. TradName은 인덱스이고, trade는 인덱스의 시리즈입니다. 두 가지를 먼저 풀고있다 및 제 2 루핑, 여기에 가고있다

for tradeName, trade in data.iterrows(): 
    for x, y    in data.iterrows(): 
    for apple, orange in data.iterrows(): 
+0

"더미 변수"가 올바른 용어인지 확실하지 않습니다. 아마도 "반복 변수"일 것입니다. – SethMMorton

+0

OP에'iterrows()'의 출력을 요청하는 대신, 튜플 압축 풀기가 무엇인지 설명하는 것이 더 유익 할 것입니다. 그러면 OP가 더 일반적인 대답을 얻을 것입니다. 여기 – SethMMorton

+0

루프 의 상단 (타임 스탬프 ('2000년 1월 3일 0시 0분 0초') 오픈 1481.50 높은 1481.50 낮은 1480.50 가까운 1480.50 볼륨 인쇄 (상품명, 무역)를 추가 반환되는 것입니다 4.00 tradeClose 1459.25 추세 -1.00 netgain 2512.50 이름 : 2000-01-03 00:00:00, dtype : float64) 그래서 나는 그들이 무엇인지 이제 알 수 있다고 가정합니다. –

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)]) 

의 반복 가능한 각 튜플이 변수로 압축 해제되며, 루프의 각 반복 사용할 수!

그 이유는 무엇입니까?