Есть ли способ извлечь код, который создает фрейм данных из фрейма данных? - PullRequest
0 голосов
/ 17 февраля 2019

Я ищу способ извлечь код, который создает фрейм данных, из загруженного фрейма данных.

Рассмотрим следующий процесс.

# Code to construct a df:

df = pd.DataFrame({'num_legs': [2, 4, 8, 0],
'num_wings': [2, 0, 0, 0],
'num_specimen_seen': [10, 2, 1, 8]},
index=['falcon', 'dog', 'spider', 'fish'])

# Obtain the df output:

df
        num_legs  num_wings  num_specimen_seen
falcon         2          2                 10
dog            4          0                  2
spider         8          0                  1
fish           0          0                  8

Я ищу автоматизированныйобратный процесс.Предположим, я начинаю с df, который загружаю из файла csv (пример ниже, тот же df, что и выше).

df = 
pd.read_csv('/path_to_data/df.csv', sep='\t')
df
        num_legs  num_wings  num_specimen_seen
falcon         2          2                 10
dog            4          0                  2
spider         8          0                  1
fish           0          0                  8

На этом этапе есть способ извлечь код (перечисленный ниже), это создаст df, предполагая, что у меня не было кода для начала.

    df = pd.DataFrame({'num_legs': [2, 4, 8, 0],
    'num_wings': [2, 0, 0, 0],
    'num_specimen_seen': [10, 2, 1, 8]},
    index=['falcon', 'dog', 'spider', 'fish'])

Это не всегда полезно, но мне любопытно, если это можно сделать, для определенных целей переносимости.Например, это позволило бы поделиться одним документом с блокнотом Jupyter, не ссылаясь ни на что внешнее.И учитывают полностью самостоятельную воспроизводимость анализа данных.

1 Ответ

0 голосов
/ 17 февраля 2019

Вы можете получить эту информацию, используя df.to_dict('list') и df.index соответственно:

In [9]: df
Out[9]:
        num_legs  num_wings  num_specimen_seen
falcon         2          2                 10
dog            4          0                  2
spider         8          0                  1
fish           0          0                  8

In [10]: df.to_dict('list')
Out[10]:
{'num_legs': [2, 4, 8, 0],
 'num_wings': [2, 0, 0, 0],
 'num_specimen_seen': [10, 2, 1, 8]}

In [11]: df.index
Out[11]: Index(['falcon', 'dog', 'spider', 'fish'], dtype='object')

In [12]: new_df = pd.DataFrame(df.to_dict('list'), index=df.index)

In [13]: new_df
Out[13]:
        num_legs  num_wings  num_specimen_seen
falcon         2          2                 10
dog            4          0                  2
spider         8          0                  1
fish           0          0                  8
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...