Разделяйте фреймы данных для каждого ключа словаря () динамически - PullRequest
0 голосов
/ 07 мая 2018

Мне удалось создать отдельный DF для каждого ключа dict. Однако, возможно, более динамично, интересно: Мой код, который работает.

    dataDct.keys()
    dict_keys(['PETR4_Dai', 'PETR4_H1_', 'PETR4_M15', 'PETR4_M5_', 
               'PETR4_Mon','PETR4_Wee'])

     try:
    # Petr4
     dfp5 = dataDct['PETR4_M5_'].drop(['<TICKVOL>','<SPREAD>'],axis=1)
     dfp15 = dataDct['PETR4_M15'].drop(['<TICKVOL>','<SPREAD>'],axis=1)
     dfph1 = dataDct['PETR4_H1_'].drop(['<TICKVOL>','<SPREAD>'],axis=1)
     dfpd = dataDct['PETR4_Dai'].drop(['<TICKVOL>','<SPREAD>'],axis=1)
     dfpw = dataDct['PETR4_Wee'].drop(['<TICKVOL>','<SPREAD>'],axis=1)
     dfpm = dataDct['PETR4_Mon'].drop(['<TICKVOL>','<SPREAD>'],axis=1)
     except:
         pass

Тем самым я попытался сделать это более динамично:

      #name of the DF:
      lables = list(dataDct.keys())

      df = []
      for i in dataDct.keys():
           df.append(dataDct[i].drop(['<TICKVOL>','<SPREAD>'],axis=1))

      listup = pd.DataFrame()
      for label,value in zip(lables,df):
             listup[label] = [(value)]

      or 
      listup = pd.DataFrame()
      for label,value in zip(lables,df):
             listup[label] = [pd.DataFrame.from_dict(value)]

Все случаи не работали, и я также попробовал со списком и словарями. безуспешно. Я тоже не смог его разлучить.

Хотите знать, как создать DF для каждого ключа диктовки ... используя ключ в качестве имени DF; Любая помощь будет оценена! Заранее спасибо!

1 Ответ

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

Единственный способ сделать то, что вы хотите, - это создать новый словарь, ключи которого совпадают с ключами в вашем ранее существующем словаре, а значения - DataFrames. В этом смысле вы можете динамически создавать DataFrames (значения) с именами (ключами) и вызывать их по желанию. (Вы даже можете назначить .name для фреймов данных, которые также соответствуют имени ключа.)

import pandas as pd

new_dict = {}
for key in dataDct.keys():
    new_dict[key] = pd.DataFrame()
    new_dict[key].name = key
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...