Как сохранить Dataframe в словаре - PullRequest
1 голос
/ 26 сентября 2019

У меня есть Dataframe, который расширяется по столбцам с помощью цикла for.теперь я хочу как-то сохранить некоторые «стадии» развивающегося ДФ и подумал, что лучше всего использовать словарь.

, чтобы дать вам картинку:

df_dict={}
for i in range(1,13):
    df=pd.read_csv('./test.csv').iloc[:,0:i*4-1]

, поэтому яхотите сохранить это как "первую стадию" df:

col1     col2     col3     col4
  1        3        5        7
  2        4        6        8

во "второй стадии":

col1     col2     col3     col4     col5     col6     col7     col8
  1        3        5        7        9        11       13       15
  2        4        6        8        10       12       14       16    

3-я стадия содержит 12 столбцов:

col1     col2     col3     col4     col5     col6     col7     col8     ...
  1        3        5        7        9        11       13       15     ...
  2        4        6        8        10       12       14       16     ...

До 12-го этапа содержится 48 столбцов.

Так что в общем я хочу сохранить в Dict эти этапы, где на каждом новом этапе есть еще 4 столбца.И мне нужно иметь возможность позже использовать эти разные Dataframes отдельно.

Я знаю, что

df_dict.update({i, df})

не работает, так как DF изменчивы, но мне не удалось найти способчтобы обойти это.

Я новичок в Python, поэтому, пожалуйста, будьте осторожны со мной.Ура!

РЕДАКТИРОВАТЬ: Я не искал идею о том, как получить переменные переменные, так как я уже упомянул, что я хочу использовать Dict, но я искал способ хранениямой Dataframe в Dict.

1 Ответ

1 голос
/ 27 сентября 2019

Я считаю, что вам нужно назначить каждый DataFrame в цикле:

df_dict={}
for i in range(1,13):
    df=pd.read_csv('./test.csv').iloc[:,0:i*4-1]
    df_dict[i] = df

Другое решение - использовать dictionary comprehension:

df_dict = {i: pd.read_csv('./test.csv').iloc[:,0:i*4-1] for i in range(1,13)}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...