将由DataFrame组成的字典存储至Excel的不同Sheet中(不覆盖)---以及将数据读取回原形式

将由DataFrame组成的字典存储至Excel的不同Sheet中(不覆盖)---以及将数据读取回原形式

存储

当在Excel中存储多个Sheet时,不可以直接遍历字典,循环df.to_excel(),这样做的话前一个Sheet会不断被后一个Sheet覆盖,最后只存下来最后一个Sheet。

想要不被覆盖可以通过pd.ExcelWriter()进行如下操作,其中dic为存储DataFrame的字典,dic_key对应每个Sheet名。

with pd.ExcelWriter("excel_name.xlsx") as writer:
    for dic_key in dic.keys():
        print('Saving data of ' + str(detector))
        dic[dic_key].to_excel(writer, sheet_name = str(detector))
        print('Done!')
writer.save()
writer.close()

读取

上一问题的对偶过程是将Excel各Sheet的数据读取成一个字典包含多个DataFrame的形式。可以先建立空字典(dic),读取Excel的Sheet名字(sheet_name)作为字典的键,再循环读取每个Sheet的数据。过程如下。

dic = {}
# 读取excel的Sheet名
sheet_names = pd.ExcelFile('excel_name.xlsx').sheet_names
for sheet_name in sheet_names:
    print('Loading data of Sheet ' + sheet_name + '...')
    dds[sheet_name] = pd.read_excel('excel_name.xlsx', sheet_name=sheet_name, index_col=0)
    print('Done!')
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值