Почему мой фрейм данных дублирует дополнения к определенному столбцу?

#python #pandas #refinitiv-eikon-api

#python #панды #refinitiv-eikon-api

Вопрос:

Я пытаюсь последовательно добавлять новые данные в фрейм данных в цикле for . Он успешно выполняет запись в выбранный мной столбец фрейма данных (я думаю), но он также записывает данные в другой столбец, который я не пытаюсь редактировать. Почему он это делает? Как я могу это исправить?

 # Resetting the data
supplier_rics = supplier_sheet['RICs']
supplier_rics = supplier_rics.dropna()

# Create a DataFrame object that will contain our headlines
supplier_headlines = pd.DataFrame(data={'RIC':supplier_rics},columns=['RIC','Headline'])
supplier_headlines

for i, ric in supplier_rics.iteritems():
    # Add R: prefix to RICS for news search
    supplier_rics[i] = "R:" supplier_rics[i]

    # Create the news query
    query = supplier_rics[i]   ' AND (Topic:SIG AND Language:LEN)'

    # Make the Eikon API Call 
    headline = ek.get_news_headlines(query=query,count=1)
    headline_string = headline['text'].to_string(index=False)
    # Add the headline text to the supplier_headlines DataFrame Object
    supplier_headlines.iloc[[i,2]] = headline_string
  

Исходный фрейм данных
Фрейм данных после его циклического прохождения

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

1. Я думаю, что это ваше .iloc . попробуйте изменить его на supplier_headlines.iloc[i,2] отсутствие двойных скобок. Также в зависимости от того, сколько столбцов имеет ваш df, он должен быть supplier_headlines.iloc[i,1]

2. Да. Это было так. Ранее я получал ошибки с одиночной скобкой .iloc , поэтому она была двойной в первую очередь. Спасибо.

3. Нет проблем. Рад помочь. в качестве отступа — в случае изменения df вы всегда можете сделать .loc[i, ['Headline']] , потому что число будет индексом строки