【多excel匹配合并成为一张excel表】

想做一个【多excel匹配合并成为一张excel表】的自动化功能,人工匹配耗时耗力。

先废话:

做运维的,居然被资源统计搞得头疼眼瞎的,也是日了狗了。遂搞了个这个,化两个人一下午都搞不完的东西为一小时之内,考虑到数据出来了还要修改啥的,1h足够了。ok,进入正题。

工具:Jupiter notebook

需要的包:pandas

以下为正文:

1、导包

import pandas as pd

2、读取表格:

df = pd.read_excel("虚拟机资源统计报表.xls",sheet_name='xx表')

df为主表,大多数字段(虚拟机名称、CPU利用率等)里面都有,缺少的字段(申请时间)在df_表.

df_表为补充表。我对补充表做了数据处理:将多个标签合并为一个,其时间由新->旧。。。。。。需要注意的是,当匹配多个结果,我选择查询到的第一个结果,即最新的结果

3、创建自己的表格mydf,用来保存最终结果

# 把需要的字段拿出来
mydf = pd.DataFrame(columns = ["虚拟机名称", "CPU配置(核)", "CPU使用率(%)", "子系统", "申请时间"]) 

4、把主表df能用的数据先考到最终表mydf中

mydf["虚拟机名称"]=df['虚拟机名称']
mydf["CPU配置(核)"]=df['CPU配置(核)']
mydf["CPU使用率(%)"]=df['CPU使用率(%)']
mydf["子系统"]=df['子系统']

5、合并表格

# 合并两张表,为主表缺少的字段“申请时间”字段赋值
for i in mydf["虚拟机名称"]:
    # a类型为Series,Series类型包括index和values两部分
    a=df_["虚机申请时间(必填)"][df_["虚机名称"] == i]
    b=a.values #返回一个多维数组numpy对象
    if(len(b)>0):
        mydf["申请时间"][mydf['虚拟机名称'] == i] = b[0]
    else:
        mydf["申请时间"][mydf['虚拟机名称'] == i] = "" #没查到的都置空

6、数据导出

mydf.to_excel("mydf.xls") #导出数据到Excel文件

7、结果很惊喜~

 

  • 2
    点赞
  • 4
    收藏
  • 打赏
    打赏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

梦醒时分2015

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值