Как выполнять итерации и циклы по фрейму данных по одной строке за раз?

#python #dataframe #for-loop

#python #фрейм данных #для цикла

Вопрос:

Набор данных:

 First_Name Last_Name Location
Green White US
Lew Edward UK
Ravi Kumar India
Naveen Reddy France
Yi Ling Singapore
Xin Yi Taiwan
Ryan Nicholas Singapore
  

Код Python:

 import pandas as pd
import numpy as np

df = pd.read_csv (r'data.csv')

def name():
    for row in df.iterrows():
        name1 = df['First_name']
        name2 = df['Last_name']
        location = df['Location']

while True:
    print(name)
  

Комментарии:

Приведенный выше код возвращает полный фрейм данных, и похоже, что он перебирает все df строки за один раз. Есть ли способ просто перебирать одну строку в цикле?

Пример:

 loop1 - Green White US
loop2 - Lew Edward UK
loop3 - Ravi Kumar India
  

Комментарии:

1. df[‘First_name’] возвращает значения для столбцов «First_name». Вам нужно использовать row из цикла for, чтобы получить нужные данные

2. Это неправильный способ разделения столбца в pandas.

3. df = pd.read_csv(r'data.csv', sep='\s ') разделители для данных неверны.

Ответ №1:

iterrows() позволяет выполнять итерации по индексу кортежей, строке

Вот быстрое решение для итерации по всему фрейму данных:

 def names():
    for i, row in df.iterrows():
        name1 = row['First_name']
        name2 = row['Last_name']
        location = row['Location']
        print('{} {} {}'.format(name1, name2, location))


names()