У меня есть Лист Excel, где для некоторых столбцов uniqueidentifier установлено «да», а для остальных - пусто.
Используя Библиотека панд, я получаю данные, которые не имеют значения в uniqueidentifier, используя следующую команду:
df=pandas.read_excel("sample.xlsx")
df=df[df.uniqueidentifier != "yes"]
Затем я хочу писать «да» в столбец uniqueidenfier каждый раз, когда я просматриваю индекс в файле Excel.
list=[]
for i in df.index
list.append(df['Subject'][i])
# do some function here
var = "some value"
Каждый раз я получаю правильные значения в list и var для соответствующего индекса. Я хочу, чтобы моя функция записывала что-то в столбец uniqueidentifier для этого значения i в цикле (например, если в строке 4, то когда uniqueidentifier не установлен, список должен принимать значение из темы и добавлять и писать «да» в столбец uniqueidentifier)
В дополнение к вышесказанному я хочу записать значение var в соседний столбец в файле Excel.
Может ли кто-нибудь помочь мне, поскольку я новичок в Python и застрял здесь?
@neo Извините, я внес некоторые правки в исходный вопрос. Я читаю данные из Excel, а затем удаляю значения с uniqueidentifier = да. df.set_value (i, «уникальный идентификатор», «да») все еще работает на листе Excel?
Вы хотите сохранить изменения на листе Excel или только в фреймворке данных?
@neo на лист Excel. Поэтому в следующий раз, когда я открою, он не принимает значение с uniqueidentifier = yes, а принимает только новые значения.






чтобы установить для уникального идентификатора значение yes, вы можете добавить в цикл следующую строку:
if [#some conditions are met]:
df.loc[i,'uniqueidentifier']='YES'
df.iloc[i].new_column=var
#new_column is the name of the column where you write your var value. you can name it however you want.
тогда вам нужно экспортировать его обратно в Excel. ты можешь использовать:
writer = pd.ExcelWriter('file.xlsx')
df.to_excel(writer,'Sheet1')
writer.save()
но имейте в виду, что это перезапишет ваш старый Excel
Есть ли способ не перезаписать весь файл Excel, потому что весь файл перезаписывается, и это вызывает проблемы для моей функции. Как и в любой другой библиотеке, где я могу выполнять ту же функцию, что и pandas, но не перезаписывает данные?
вы можете добавить определенную строку в файл, и он добавит ее в конец вашего Excel. используйте: f = open ("имя файла", "a +"), затем f.write (данные) и, наконец, f.close (). все внутри вашего цикла. Я почти уверен, что вы также можете указать своему сценарию заменить определенную строку в Excel, но не уверен, как это сделать, поскольку я никогда не пробовал это раньше
что здесь f? а также добавит данные в конец файла правильно? Если у меня 10 строк, значения появятся из 11-й строки. Например, в моем примере выше в моем файле Excel есть столбец UNiqueIdentifier, в котором есть 3 строки с положительным ответом, а остальные пустые. Так будут ли добавлены данные из 4-й строки или из последней строки, где данные заканчиваются?
f - это просто имя, которое позволяет вам обращаться к файлу с помощью команды open. вы можете использовать любое другое имя, какое захотите. относительно вашего второго вопроса append находит последнюю строку файла и добавляет еще одну.
Пожалуйста, обратитесь к ответу здесь, stackoverflow.com/questions/13842088/…