鱼C论坛

 找回密码
 立即注册
查看: 1286|回复: 7

[已解决]对多个Excel文件内单元格,以规则库提取数据的指导方向?

[复制链接]
发表于 2020-11-12 10:33:45 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 nh_wzg 于 2020-11-12 12:57 编辑

提个简单的需求,看下有哪些方向的视频教程可以快速看一下?

小甲鱼的这套视频主要介绍使用openpyxl模块的功能,都是对excle文件的基本读写与格式处理功能。

使用excel时间比较长的用户会有这样的需求:

几个渠道发过来的excel表格,行列内容有相似,但又不都是标准的一一对应,想进行数据整理为标准内容格式

实际就是建立不同渠道发过来的excel表格单元格内容,与最终整理后表格单元格,逻辑对应关系的建立。

这样类似于鱼C论坛里面的 《数据分析》https://fishc.com.cn/thread-79537-1-1.html

但觉得又没有这么高端吧。

用例子说话:
1、来了三个渠道的报价文件,都报各种水果的价格:
第一个文件包含有,红富士苹果|单价|货期,
第二个文件包含有,甘泉苹果|单价|货期,
第三个文件包含有,山东苹果|单价|货期,

2、用户建立其中的一个python匹配规则:苹果|单价|货期同时提取出来

3、用户的匹配规则库,可以按需求增多,然后对匹配出来的数据进行汇集,再进行进一步的使用。

如果用python来实现,基本要准备些什么工具与模块?大致的过程?

有这样以python为工具,结合用户需求的规则库,对excel文件进行归纳处理的教程或视频,请指点下?

先谢谢!
样例:链接:https://pan.baidu.com/s/1WlhFsGOOkwYMznxOVeHDNw 提取码:2020

                               
登录/注册后可看大图
最佳答案
2020-11-12 22:26:07
这样试试?
  1. import pandas as pd
  2. import os,re
  3. path=r'D:\python\test\样例'
  4. p=re.compile('\w+苹果')
  5. def find_apple(x):
  6.     if len(p.findall(x['名称']))>0:
  7.         return 1
  8.     else:
  9.         return 0
  10. def check_apple(data):
  11.     data['flag'] = data.apply(find_apple, axis=1)
  12.     data = data[data['flag'].isin(['1'])]
  13.     return data
  14. zhangsan=pd.read_excel(os.path.join(path,'张三.xlsx'))
  15. zhangsan=check_apple(zhangsan)
  16. print(zhangsan)
  17. lisi=pd.read_excel(os.path.join(path,'李四.xlsx'))
  18. lisi=check_apple(lisi)
  19. print(lisi)
  20. wangwu=pd.read_excel(os.path.join(path,'王五.xlsx'))
  21. wangwu=check_apple(wangwu)
  22. print(wangwu)
  23. result=pd.concat([zhangsan,lisi,wangwu])
  24. result=result.iloc[:,:-1]
  25. print(result)
  26. result.to_excel(os.path.join(path,'result.xlsx'),index=False)



复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-12 10:35:49 | 显示全部楼层
看起来VBA更适合
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-12 11:24:02 From FishC Mobile | 显示全部楼层
不太明白你的意思,但是是不是你的需求用pandas可以解决?要么你贴个样表上来,还有需求的输出结果样式
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-12 12:19:42 | 显示全部楼层
本帖最后由 nh_wzg 于 2020-11-12 12:47 编辑

谢谢楼上的回复,增加样例及想法的截图。没办法附加文件与图片、

样例:链接: https://pan.baidu.com/s/1WlhFsGOOkwYMznxOVeHDNw 提取码: 2020

图片:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-12 12:54:47 | 显示全部楼层

重复,删除

本帖最后由 nh_wzg 于 2020-12-8 02:08 编辑

重复,删除
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-12 22:26:07 | 显示全部楼层    本楼为最佳答案   
这样试试?
  1. import pandas as pd
  2. import os,re
  3. path=r'D:\python\test\样例'
  4. p=re.compile('\w+苹果')
  5. def find_apple(x):
  6.     if len(p.findall(x['名称']))>0:
  7.         return 1
  8.     else:
  9.         return 0
  10. def check_apple(data):
  11.     data['flag'] = data.apply(find_apple, axis=1)
  12.     data = data[data['flag'].isin(['1'])]
  13.     return data
  14. zhangsan=pd.read_excel(os.path.join(path,'张三.xlsx'))
  15. zhangsan=check_apple(zhangsan)
  16. print(zhangsan)
  17. lisi=pd.read_excel(os.path.join(path,'李四.xlsx'))
  18. lisi=check_apple(lisi)
  19. print(lisi)
  20. wangwu=pd.read_excel(os.path.join(path,'王五.xlsx'))
  21. wangwu=check_apple(wangwu)
  22. print(wangwu)
  23. result=pd.concat([zhangsan,lisi,wangwu])
  24. result=result.iloc[:,:-1]
  25. print(result)
  26. result.to_excel(os.path.join(path,'result.xlsx'),index=False)



复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-14 09:39:04 | 显示全部楼层
现在想到需要考虑的另外一系列与规则库相关的问题是:

1、每条规则库里的规则,可以生成一个记录分集》这个没有问题

2、这样已经生成的分集之间的交集情况如何?》需要调整规则设定不?

3、未匹配上规则库的任一条规则的分集,数量与内容如何?》需要增加新规则不?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-2 17:16:04 | 显示全部楼层
样例共享过期,重新生成一个。
链接: https://pan.baidu.com/s/1v_AmL804sdbYUeo84ICOvw 提取码: yzr9
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 21:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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