鱼C论坛

 找回密码
 立即注册
查看: 3727|回复: 2

操作EXCEL用xlwings还是pandas,具体如何做?

[复制链接]
发表于 2022-10-13 08:40:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
需求:
一个统计表格,需要从表格中读取数据,然后按关键词筛选出来,分别进行统计,最后生成图表

看了一些做法
1、先打开表格,读取数据,有说法是xlwings最快,读一个10M的文档,只要7.9秒
2、生成一个data{},然后我就不知道怎么做了,我不需要所有的数据,只要其中几列,而且单元格里还要筛选我需要的,这个我看有打开一个模板文件,然后把数据写进去,但是我试了一下,只生成了新表格,数据没写进去
for i in workbook.sheetnames:
        sheet = workbook[i]
        names = sheet['B']
        flag = 0
        for cell in names:
            if cell.value == '202':
                flag = cell.row
                break
        if flag:   # 如果flag没有被修改则不需要顺序进行下列代码
            data_lst = []
            for cell in sheet[flag]:
                # 这里加上一个对内容的判断,是让无内容的行直接放空,而不是写入一个 none
                if cell.value:  
                    data_lst.append(str(cell.value))
                else:
                    data_lst.append(' ')
            new_sheet.append(data_lst)

new_workbook.save(r'D:\python\new.xlsx')

求指教
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-10-13 10:02:31 | 显示全部楼层
我没用过这个模块,你贴一下完整代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-13 16:32:47 | 显示全部楼层
我在知乎上搜到一个
import pandas as pd
df = pd.read_excel('e://python_test//2022fault list.xlsx')
df.head()
df.reset_index(inplace=True,drop=True)
df1 = df.loc[df['作业区'] == '三冷电气', ['机组', '设备\n停机', '日期', '故障名称', '故障原因', '对策措施', '点检员']]
df1.head(10)
df1.to_excel('e://python_test//index_faultlist.xlsx')

这样就搞定了,但是我没看懂
df.head()的用法
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-23 04:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表