это операция, где в значении в столбце месяца должно быть 1,2,3,4, но значение 4-го месяца перезаписывает все предыдущее значение Прикрепленное изображениеданных, которые я пытаюсь изменить список добавленных значений перезаписывается последним значением цикла for, не уверен, что здесь пропущено, пробовал и concat, и append, оба из них не дают ожидаемого вывода
import pandas as pd
from datetime import datetime as dt
file_name = r"file_path"
df1=pd.read_excel(file_name)
df1.dropna(axis=1, how='all', thresh=20, subset= None, inplace=True)
df1=df1[df1.col1 != "xyz"]
df2=df1.iloc[:,0:1]
df3=df1.iloc[:,2:]
######### first try ######################
## In this try the values in the list were all overwritten by the last
values from the loop ##
df=pd.DataFrame([])
for i in range(len(df3.columns.values)):
df4.assign(col1=lambda x: df2.iloc[:,0],
col2=lambda x: df3.columns[i].year,
col3=df3.columns[i].month,
col4=df3.iloc[:,i])
print(df4.head(2))
df.append(df4)
########### second try #####################
## in this try the list was empty when printed##
df=[]
df4=pd.DataFrame(columns=['col1','col2','col3','col4'])
for i in range(len(df3.columns.values)):
df4['col1']=df2.iloc[:,0]
df4['col2']=df3.columns[i].year
df4['col3']=df3.columns[i].month
df4['col4']=df3.iloc[:,i]
df.append(df4)
print(df)
Нет ошибок, ожидаемый результат состоит в том, что в списке должны быть значения df4 для фреймов данных для каждой итерации значений цикла for.
Получены результаты, когда последнее значение из цикла перезаписывает всеэлементы списка