Добавить текст в каждую ячейку определенного столбца существующего файла excel с помощью python

S Dayal спросил: 31 июля 2018 в 09:46 в: python

Я действительно новичок в python, и я застрял в этой проблеме. Как я могу добавить текст в каждую ячейку столбца F существующего файла excel для доступа к финансовой отчетности? Пример: строка 2, столбец F содержит edgar / data / 3662 / 0000950170-98-000413.txtI хочу добавить" https://www.sec.gov/Archives/", чтобы сформировать ссылку финансового отчета iehttps://www.sec.gov/Archives/edgar/data/3662/0000950170-98-000413.txt

Я пробовал использовать pandas / openpyxl, но я вообще не могу модифицировать листок. Есть ли какой-нибудь другой модуль или что-то еще? Мой код выглядит примерно так:

import pandas as pd
file = pd.read_excel('cik_list.xlsx')
sheet = pd.ExcelWriter(file, engine='openpyxl')
sheet['SECFNAME'] = 'https://www.sec.gov/Archives/' + 
sheet['SECFNAME'].astype(str)
sheet.save()

И я получаю эту ошибку: TypeError: объект _Openpyxl22Writer не подлежит индексированию

Я знаю, что это может быть самый простой но я действительно не мог найти ничего связанного. Пожалуйста, помогите!

1 ответ

Есть решение
Aditya K ответил: 31 июля 2018 в 10:53

Вы пытались это сделать?

import pandas as pd
df = pd.read_excel('cik_list.xlsx')
df['SECFNAME'] = 'https://www.sec.gov/Archives/' + df['SECFNAME']
df.to_excel('fileName.xlsx')

Это то, что происходит здесь:

  1. Чтение файла Excel на фрейм данных
  2. Выбор столбца SECFNAME в кадре данных и добавление строки в каждую строку
  3. Сохранение в кадре данных в новый файл. (Сохранение выходного файла с тем же именем заменит предыдущий файл.)
S Dayal ответил: 31 июля 2018 в 11:12
Вау! Это сработало. Спасибо вам большое! :) Я застрял на несколько дней.
Aditya K ответил: 31 июля 2018 в 11:13
Рад, что смог помочь. Пожалуйста, отметьте, как принято, если это решило вашу проблему. :)
S Dayal ответил: 31 июля 2018 в 11:15
Данные сместились на один столбец вправо. Как я могу удалить это? Я имею в виду, я могу просто удалить его в файле Excel, но есть ли способ сохранить такое же количество столбцов с помощью Python?
Aditya K ответил: 31 июля 2018 в 11:24
Попробуйте сделать df.to_excel("filename.xlsx",index=False)
S Dayal ответил: 31 июля 2018 в 11:27
Большое спасибо! :)