Итак, у меня есть 3 кадра данных - df1, df2.df3. Я пытаюсь перебрать каждый фрейм данных, чтобы можно было выполнить некоторую предварительную обработку - установить дату, выделить час в отдельный столбец и т. Д. Однако у меня возникают некоторые проблемы:
Если я сохраню df в dict, как в df_dict = {'df1' : df1, 'df2' : df2, 'df3' : df3}
, а затем переберу его, как в
for k, v in df_dict.items():
if k == 'df1':
v['Col1']....
else:
v['Coln']....
Я получаю NameError: name 'df1' is not defined
Что я делаю не так? Сначала я думал, что не читаю данные в df1..3, но, похоже, все работает нормально (так как в нем нет ошибок, и его ясно читают, учитывая временную задержку (это большие файлы)). Код, предшествующий этому (для загрузки):
DF_DATA = { 'df1': 'df1.csv','df2': 'df2.csv', 'df3': 'df3.csv' }
for k,v in DF_DATA.items():
print(k, v) #this works to print out both key and value
k = pd.read_csv(v) #this does not
Я думаю, что это может быть причиной, но не уверен. Я ожидаю, что цикл загрузки создаст 3 кадра данных и поместит их в память. Затем для цикла в верхней части страницы, я хочу сослаться на строковый ключ в моем условии блока if, чтобы каждый df мог получить немного различную обработку предварительной обработки.
Большое спасибо заранее за вашу помощь.