Запись данных в определенный столбец в Python с использованием pandas

У меня есть Лист 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 и застрял здесь?

Пожалуйста, обратитесь к ответу здесь, stackoverflow.com/questions/13842088/…

neo 27.03.2018 06:57

@neo Извините, я внес некоторые правки в исходный вопрос. Я читаю данные из Excel, а затем удаляю значения с uniqueidentifier = да. df.set_value (i, «уникальный идентификатор», «да») все еще работает на листе Excel?

S.Mehta 27.03.2018 07:13

Вы хотите сохранить изменения на листе Excel или только в фреймворке данных?

neo 27.03.2018 07:19

@neo на лист Excel. Поэтому в следующий раз, когда я открою, он не принимает значение с uniqueidentifier = yes, а принимает только новые значения.

S.Mehta 27.03.2018 07:57
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
4
2 277
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

чтобы установить для уникального идентификатора значение 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, но не перезаписывает данные?

S.Mehta 28.03.2018 00:55

вы можете добавить определенную строку в файл, и он добавит ее в конец вашего Excel. используйте: f = open ("имя файла", "a +"), затем f.write (данные) и, наконец, f.close (). все внутри вашего цикла. Я почти уверен, что вы также можете указать своему сценарию заменить определенную строку в Excel, но не уверен, как это сделать, поскольку я никогда не пробовал это раньше

Lior T 28.03.2018 06:23

что здесь f? а также добавит данные в конец файла правильно? Если у меня 10 строк, значения появятся из 11-й строки. Например, в моем примере выше в моем файле Excel есть столбец UNiqueIdentifier, в котором есть 3 строки с положительным ответом, а остальные пустые. Так будут ли добавлены данные из 4-й строки или из последней строки, где данные заканчиваются?

S.Mehta 28.03.2018 06:35

f - это просто имя, которое позволяет вам обращаться к файлу с помощью команды open. вы можете использовать любое другое имя, какое захотите. относительно вашего второго вопроса append находит последнюю строку файла и добавляет еще одну.

Lior T 28.03.2018 06:38

Другие вопросы по теме