Насколько я вижу, предоставленный вами фрагмент кода правильный. Просто знайте, что вы передаете один и тот же параметр id каждому вызову getResultfunction. Не могли бы вы показать реализацию функции getResult? Проблема, вероятно, там. Либо это, либо ваш список listDates содержит неправильные даты.
РЕДАКТИРОВАТЬ 1 Хорошо, поэтому проблема, вероятно, в том, что вы просто храните ссылки на один и тот же фрейм данных в списке. Если вы не знакомы с тем, как языки программирования хранят ссылки и значения, я бы посоветовал вам зайти по этой ссылке https://blog.penjee.com/passing-by-value-vs-by-reference-java-graphical/ или просто погуглить по ней, так как это фундаментальная парадигма языков программирования.
Таким образом, каждый раз, когда вы вызываете getResultfunction
, вы получаете ссылку на один и тот же шаблон, затем вы изменяете этот шаблон и возвращаете ссылку на шаблон. При следующем вызове функции вы получите доступ к тому же (измененному) шаблону, снова измените его и вернете новую ссылку на него. Затем в списке хранится множество ссылок на один и тот же объект !
. В этом конкретном случае каждый вызов функции getResultfunction должен создавать новый объект. Я вижу 2 решения; Каждый раз, когда вы вызываете функцию getResult, вы:
- просто копируете существующий шаблон, который генерирует новый идентичный объект:
def getResultfunction(id, date):
p = template.copy()
"""other computations"""
return p
- создаете новый шаблон с нуля :
def getResultfunction(id, date):
data = {...}
df = pd.Dataframe(data)
""""other computations"""
return df