Как дать текстовый ключ для фрейма данных, хранящегося в качестве значения в словаре? - PullRequest
0 голосов
/ 11 мая 2018

Итак, у меня есть 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 мог получить немного различную обработку предварительной обработки.

Большое спасибо заранее за вашу помощь.

1 Ответ

0 голосов
/ 11 мая 2018

Вы неправильно создали df_dict.Попробуйте это:

DF_DATA = { 'df1': 'df1.csv','df2': 'df2.csv', 'df3': 'df3.csv' }
df_dict= {k:pd.read_csv(v) for k,v in DF_DATA.items()}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...