将多个系列词典保存到Excel

我有一个101列的数据框,我想看看我的DataFrame中的每个variables的分布。 使用pandasvalue_counts我创build了多个长度的几个系列字典。 每个系列都有自己的钥匙。

首先我做:

out={} for c in df.columns: out[c]=df[c].value_counts(dropna=False).fillna(0) 

所以,out是一个大小为101的字典。在out内是一系列不同大小的字典。

 Key | Type | Size | Value Key1 Series (12,) class 'pandas.core.series.Series' Key2 Series (7,) class 'pandas.core.series.Series' Key3 Series (24,) class 'pandas.core.series.Series' . . . Key101 

每个密钥都是唯一的。 我想将这些系列中的每一个保存到一个Excel文件中。 这个答案是非常接近的,并且对于循环中的第一个键是有效的,但是它不会继续到字典中的下一个键。 这是我现在所拥有的:

 for key in out.keys(): s=out[key] name=key[:30] s.to_excel('xlfile.xlsx', sheet_name=name) 

我只保留前30个字符,因为这是Excel表格名称的限制。 我不需要他们自己的工作表,我宁愿他们都被保存到一个单一的工作表,但这是最接近我可以保存他们。 显然是一个新手,所以如果有更好的方法来解决我的根本问题,那也太棒了。

我接受任何build议,感谢您的时间。

需要ExcelWriter :

 writer = pd.ExcelWriter('xlfile.xlsx') for key in out.keys(): out[key].to_excel(writer, sheet_name=key[:30]) writer.save() 

或者如果没有必要创builddict ,在第一个循环中写入(也有利于与DataFrame columnssheet names相同):

 writer = pd.ExcelWriter('xlfile.xlsx') for c in df.columns: df[c].value_counts(dropna=False).fillna(0).to_excel(writer, sheet_name=c[:30]) writer.save() 

你需要创build一个Excel作家,并将其传入循环即

 >>> writer = pd.ExcelWriter('output.xlsx') >>> df1.to_excel(writer,'Sheet1') >>> df2.to_excel(writer,'Sheet2') >>> writer.save() 

请参阅这里了解更多