我的字典看起来像这样(简化版):
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'}}
我使用以下命令将该字典转换为数据框:
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()
当我尝试使用df.to_excel()将其编写为excel时。它只写出代码的最后一部分,所以我数据框中的“字符串”和“数字”中的最后一组数据。更好地可视化的示例:。
任何人都知道问题出在哪里?我想在Excel中拥有整个数据框。先感谢您。
答案 0 :(得分:0)
在您的示例代码中
{('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