Как сделать цикл по строкам dataframe python
В Pandas для перебора фрейма данных используем функцию items()
:
for col_name, data in df.items():
print("col_name:",col_name, "\ndata:",data)
Столбец индекса остается неизменным на протяжении всей итерации, так как это связанный индекс для значений.
В то время как df.items()
перебирает строки по столбцам, выполняя цикл для каждого столбца, мы можем использовать iterrows()
для получения всех строковых данных индекса.
for i, row in df.iterrows():
print(f"Index: {i}")
print(f"{row}\n")
Функция itertuples()
также вернет генератор, который генерирует значения строк в кортежах:
for row in df.itertuples():
print(row)
! Официальная документация Pandas предупреждает, что итерация - это медленный процесс. Если вы перебираете DataFrame для изменения данных, векторизация будет более быстрой альтернативой. Кроме того, не рекомендуется изменять данные во время итерации по строкам, поскольку Pandas иногда возвращает копию данных в строке, а не ее ссылку, что означает, что не все данные на самом деле будут изменены.