Панды пишет только часть кода в Excel - PullRequest
0 голосов
/ 28 июня 2018

мой словарь выглядит так (сокращенная версия):

my_dict = {('random_number_1', 'random_number_2'): {'random_string_1': 
'random_number_3'}, ('random_number_1', 'random_number_4'): 
{'random_string_2': 'random_number_5'}, ('random_number_1', 
'random_number_6'): {'random_string_3': 'random_number_7', 
'random_string_4': 'random_number_8', 'random_string_5': 
'random_number_9'}}

{('random_number_10','random_number_11'): {'random_string_6': 
'random_number_12', 'random_string_7': 'random_number_13'}}

Я конвертирую этот dict в фрейм данных с:

newdict = {(k1, k2):v2 for k1,v1 in my_dict.items() \
                   for k2,v2 in my_dict[k1].items()}

df = (pd.DataFrame( [newdict[i] for i in sorted(newdict)],
                index=pd.MultiIndex.from_tuples([i for i in sorted(newdict.keys())]))
    .reset_index(level=1) 
    .rename(columns={'level_1':'string',0:'number'})) 
df.index = pd.MultiIndex.from_tuples(df.index) 
print df
df.to_excel()

и я получаю распечатку, которая выглядит следующим образом: print df

И когда я пытаюсь написать это, чтобы преуспеть с df.to_excel (). Он записывает только последнюю часть кода, поэтому последняя группа данных из «строки» и «числа» в моем фрейме данных. пример для лучшей визуализации: What is written in excel.

У кого-нибудь есть идеи, в чем проблема? Я хотел бы иметь весь dataframe в Excel. Заранее спасибо.

1 Ответ

0 голосов
/ 29 июня 2018

В вашем образце кода

{('random_number_10','random_number_11'): {'random_string_6': 'random_number_12', 'random_string_7': 'random_number_13'}}

не связан ни с одной переменной.

Ваш DataFrame выглядит следующим образом (я сократил строки, чтобы получить полную печать на консоли):

df: 
        string number
r_n_1 r_n_2  r_s_1  r_n_3
      r_n_4  r_s_2  r_n_5
      r_n_6  r_s_3  r_n_7
      r_n_6  r_s_4  r_n_8
      r_n_6  r_s_5  r_n_9

Я не могу протестировать с Excel, но с df.to_csv('test.csv') ваш код, кажется, работает. Содержание test.csv:

    ,,string,number
r_n_1,r_n_2,r_s_1,r_n_3
r_n_1,r_n_4,r_s_2,r_n_5
r_n_1,r_n_6,r_s_3,r_n_7
r_n_1,r_n_6,r_s_4,r_n_8
r_n_1,r_n_6,r_s_5,r_n_9

Импортировано в LibreOffice: enter image description here

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