enumerate
iterable 객체를 받아 인덱스와 해당 요소를 반환하는 iterator를 생성한다. 여기서 객체란 데이터프레임 각 행의 정보를 담았다고 볼 수 있다.
#enumerate(iterable, start=0)
alphabet =['A', 'B', 'C']
for idx, val in enumrate(alphabet):
print(idx, val)
>>> 0 A
1 B
2 C
iterrows()
데이터프레임에서 각 행을 반복문을 사용해 출력하는 방법
import pandas as pd
dict_1 = {
'col1': [4, 1, 5, 3, 2],
'col2': [6, 7, 8, 9, 10],
'col3': [11, 12, 13, 14, 15],
'col4': [16, 17, 18, 19, 20]
}
df_1 = pd.DataFrame(dict_1)
for row in df_1.iterrows():
print(row)
-- Result
(0, col1 4
col2 6
col3 11
col4 16
Name: 0, dtype: int64)
(1, col1 1
col2 7
col3 12
col4 17
Name: 1, dtype: int64)
(2, col1 5
col2 8
col3 13
col4 18
Name: 2, dtype: int64)
(3, col1 3
col2 9
col3 14
col4 19
Name: 3, dtype: int64)
(4, col1 2
col2 10
col3 15
col4 20
Name: 4, dtype: int64)
#type
(index, row_series)
for loop가 돌면서 tuple의 형태로 출력되고,
첫 번째 데이터 자리는 index, 두번째는 index가 가지는 df의 행 정보가 Series 형태로 들어있다.
zip()
여러 개 iterable 객체를 묶어서 각각의 iterable 객체에서 하나씩 원소를 가져와, tuple로 묶은 iterator를 생성한다. (앞 함수와 반대 작용)
num = [1, 2, 3, 4, 5]
alp = ['a', 'b', 'c', 'd', 'e']
for item in zip(num, alp):
print(item)
>>> (1, 'a')
(2, 'b')
(3, 'c')
(4, 'd')
(5, 'e')
next()
iterator 객체에서 다음 요소를 반환, 더이상 없을 경우 None 반환
원하는 문구가 있을 경우 next(iterator, '문자열') 로 가능
iter()
iterator 객체로 반환 가능
data = iter(range(1,5))
print(next(data)) #1
print(next(data)) #2
print(next(data)) #3
print(next(data)) #4
print(next(data)) #stopIteration 예외 발생