#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. Спасибо всем вам, это работает 🙂