标题:关于pandas的使用问题
只看楼主
螭蛊
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2023-2-24
结帖率:75%
已结贴  问题点数:10 回复次数:9 
关于pandas的使用问题
请教各位大神, 现在有一个工作薄,里面有100个工作表,表格是一样的,里面的数据不同,我想提取每个工作表里A列和F列最后一行的数据  ,并汇总在一起
使用pandas如何完成???
搜索更多相关主题的帖子: 汇总 工作表 提取 一行 数据 
2023-03-03 09:03
sheeboard
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:6
帖 子:42
专家分:179
注 册:2023-2-16
得分:10 
用pd.ExcelFile,然后循环读取sheet_names,max确定最大行,iloc定位数据,append汇总。如果能给个测试文件,可以给你代码。

[此贴子已经被作者于2023-3-3 09:48编辑过]

2023-03-03 09:47
螭蛊
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2023-2-24
得分:0 
回复 2楼 sheeboard
桥梁卷内目录.rar (192.13 KB)



就是提取A列和F列最后一个数据,新建一个汇总表填进去,用pandas能实现吗
新手,麻烦代码发下,感谢
2023-03-03 11:14
sheeboard
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:6
帖 子:42
专家分:179
注 册:2023-2-16
得分:0 
附件下不了,换网盘吧。
2023-03-03 11:52
螭蛊
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2023-2-24
得分:0 
回复 4楼 sheeboard


工作表就长这样,有很多工作表,就是提取A列下面那个8和F列那个166数字,8是最后一行了,但行数不固定,我用xlwings写了一个感觉很长,pandas应该会更简单
2023-03-03 17:48
sheeboard
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:6
帖 子:42
专家分:179
注 册:2023-2-16
得分:0 
贴图看不到,参考一下吧。一些方法将在新版本中移除,会有警告,忽视即可。
程序代码:
import pandas as pd

writer=pd.ExcelWriter('result.xlsx')

wb=pd.ExcelFile('test.xlsx')
summ=pd.DataFrame([],columns=['A','F'])

for ws in wb.sheet_names:
    df=pd.read_excel('test.xlsx',sheet_name=ws)
    temp=df.iloc[-1,[0,5]]
    summ=summ.append(temp,ignore_index=True)
    df.to_excel(writer,sheet_name=ws,index=False)

summ.to_excel(writer,sheet_name='汇总')
writer.save()


[此贴子已经被作者于2023-3-3 20:30编辑过]

2023-03-03 20:29
螭蛊
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2023-2-24
得分:0 
回复 6楼 sheeboard
这个论坛不知道咋回事,上传文件不能下载,图片还看不到,
代码运行了一下,报错了,就是append()那行,   所有的报错都是添加那句上报的

还有一个就是写入文件也生成了,好像是把原文件里面的所有内容都写进去了( 我只需要A列和F列最后一个数据 ),也没有汇总,还是原来的一个个工作表的分开的

[此贴子已经被作者于2023-3-4 09:52编辑过]

2023-03-04 09:49
sheeboard
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:6
帖 子:42
专家分:179
注 册:2023-2-16
得分:0 
回复 7楼 螭蛊
是error还是warning,append在下个版本里要被去掉,用concat替代,你仔细看result文件最后有个 汇总 worksheet,如果汇总要单独一个文件,不用writer就是了。


[此贴子已经被作者于2023-3-4 12:08编辑过]

2023-03-04 11:50
螭蛊
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2023-2-24
得分:0 
回复 8楼 sheeboard
FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.
  summ=summ.append(temp,ignore_index=True)
E:/培训材料/编写/VBA课件/应用/shishi.py:11: FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.
  summ=summ.append(temp,ignore_index=True)



print(summ)还是对的,可能是后面写入的时候出的问题了

[此贴子已经被作者于2023-3-4 15:21编辑过]

2023-03-04 15:14
sheeboard
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:6
帖 子:42
专家分:179
注 册:2023-2-16
得分:0 
程序代码:
import pandas as pd
wb=pd.ExcelFile('桥梁卷内目录.xlsx')
summ=pd.DataFrame([],columns=['序号','页次'])

for ws in wb.sheet_names:
    df=wb.parse(ws,header=1)
    df.dropna(subset=['序号','页次'],inplace=True)
    temp=df.iloc[-1,[0,5]]
    summ=summ.append(temp,ignore_index=True)

summ.to_excel('result.xlsx',index=False)

随便改改就好了,基础方法还是要熟练掌握,append改concat你就当练习吧。

[此贴子已经被作者于2023-3-5 13:54编辑过]

2023-03-04 15:54



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-511431-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.057119 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved