Последний элемент моего диктанта удаляется в итераторе for

#python #dataframe #dictionary #for-loop

Вопрос:

Я новичок. Я создал словарь и фрейм данных. Я пытаюсь обновить свой фрейм данных в цикле с помощью значений словаря. Я делаю это таким образом:

 import pandas as pd
import numpy as np

a = pd.DataFrame(index= ["nima", "niloo", "javad", "zahra"], columns= np.arange(1,1001))
inp = {"name":"", "night":"", "what":"", "price": 1000}

for keys in list(inp.keys()):
  print("please Enter", keys, ":")
  inp[keys] =  input()
  a.loc[inp.pop('name')][inp.pop('night')] = inp.pop("price")
 

когда я запускаю это
Во-первых: он запрашивает «имя»
Второе: он запрашивает «ночь»
, а затем возвращает ошибку: KeyError: «цена»

Распечатав словарь, я обнаружил, что после запуска for он удаляет последний элемент «цена», но я не знаю почему!

пожалуйста, помогите мне

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

1. Ты попадаешь в петлю. Первая итерация выскочит "price" из inp , а затем ее не будет в словаре на следующей итерации.

2. Вы, вероятно, хотите .get() вместо .pop()

3. Кстати, обычно вы помещаете запрос на ввод в аргумент to input() , а не в отдельный print() оператор.

4. Обновление фрейма данных, вероятно, должно быть после цикла, который заполняет словарь.

5. Спасибо всем вам, это работает 🙂