注册 登录
编程论坛 Python论坛

关于pandas的使用问题

螭蛊 发布于 2023-03-03 09:03, 1091 次点击
请教各位大神, 现在有一个工作薄,里面有100个工作表,表格是一样的,里面的数据不同,我想提取每个工作表里A列和F列最后一行的数据  ,并汇总在一起
使用pandas如何完成???
9 回复
#2
sheeboard2023-03-03 09:47
用pd.ExcelFile,然后循环读取sheet_names,max确定最大行,iloc定位数据,append汇总。如果能给个测试文件,可以给你代码。

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

#3
螭蛊2023-03-03 11:14
回复 2楼 sheeboard
只有本站会员才能查看附件,请 登录



就是提取A列和F列最后一个数据,新建一个汇总表填进去,用pandas能实现吗
新手,麻烦代码发下,感谢
#4
sheeboard2023-03-03 11:52
附件下不了,换网盘吧。
#5
螭蛊2023-03-03 17:48
回复 4楼 sheeboard
只有本站会员才能查看附件,请 登录


工作表就长这样,有很多工作表,就是提取A列下面那个8和F列那个166数字,8是最后一行了,但行数不固定,我用xlwings写了一个感觉很长,pandas应该会更简单
#6
sheeboard2023-03-03 20:29
贴图看不到,参考一下吧。一些方法将在新版本中移除,会有警告,忽视即可。
程序代码:
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编辑过]

#7
螭蛊2023-03-04 09:49
回复 6楼 sheeboard
这个论坛不知道咋回事,上传文件不能下载,图片还看不到,
代码运行了一下,报错了,就是append()那行,   所有的报错都是添加那句上报的

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

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

#8
sheeboard2023-03-04 11:50
回复 7楼 螭蛊
是error还是warning,append在下个版本里要被去掉,用concat替代,你仔细看result文件最后有个 汇总 worksheet,如果汇总要单独一个文件,不用writer就是了。


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

#9
螭蛊2023-03-04 15:14
回复 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编辑过]

#10
sheeboard2023-03-04 15:54
程序代码:

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编辑过]

1