#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()