У меня есть куча URL-адресов, хранящихся в фрейме данных, и я очищаю их через модуль синтаксического анализа URL. Вопрос, который я имею, что поле «siteClean», который должен обновить с очищенной URL обновляет весь столбец, а не отдельные клетки ...Обновление pandas dataframe через петли
Вот код:
results = resultsX.copy(deep = True)
results = results.reset_index(drop = True)
results['siteClean'] = ''
from urlparse import urlsplit
import re
for row in results.iterrows():
#print row[1]
url = row[1][1]
if not re.match(r'http(s?)\:', url):
url = 'http://' + url
parsed = urlsplit(url)
host = parsed.netloc
#print host
#row[1][1] = host
#results[row][1] = host
results['siteClean'] = host
print results
'результаты [«siteClean»]' возвращает серию на вашем dataframe, поэтому он обновляет весь столбец, было бы лучше, чтобы построить свой чистый список первых и создать dataframe от него – EdChum
да я понял, что и это, вероятно, лучшее решение для того, чтобы этот проект был выполнен и завершен ... но есть ли способ обновить dataframe в цикле for? –
Вам нужно [index] (http://pandas.pydata.org/pandas-docs/stable/indexing.html) правильно, является ли это уже существующим фреймворком данных или вы заполняете и создаете с нуля, вы можете индексировать используя целочисленное или основанное на ярлыке, если вы делали это с нуля, вам нужно будет отслеживать номер строки при добавлении каждой записи так, чтобы что-то вроде 'results.iloc [row] ['siteClean'] = host' или подобное. Тем не менее, это будет намного проще и проще понять, если вы сначала заполнили список, если у вас много URL-адресов, хотя тогда это может быть медленным – EdChum