Re: [问题] Excel资料做比较

楼主: ripple0129 (perry tsai)   2016-04-01 01:13:34
※ 引述《os653 ()》之铭言:
: 有很多个月份的 Excel 想要做比较,基本上每个月一份 Excel
: 内容大概是某某东西某某月销售多少,想计算销售成长率
: 问题是资料有点杂
: 像是东西的名字不太固定,同月份的珍奶跟珍珠奶茶应该要并计
: 或是贩售的场所名字略有不同,XX豆浆跟XX豆浆大王其实指的是同个东西
: 我自己想了两个处理办法
: 1. 不管内容,全部参在一起做成撒尿牛丸
: 直接把资料都读进数据库,像这样
: 2015/03 XX豆浆大王 珍奶 100
: 2015/03 XX豆浆 珍奶 200
: 2015/04 XX豆浆大王 珍珠奶茶 300
: 2015/04 XX豆浆 珍珠奶茶 400
: 之后再回头慢慢把同义不同名的资料合并
: 2. 先设计好数据库,每一份 Excel 单独写一个 parser 去处理
: parser 要负责把同义不同名的资料修正后再丢进数据库
: 请问这两个做法那个比较好?或是有其他更适当的做法?
: 我自己觉得两个做法都有点别扭,还请各位提供点意见,感谢
当然是先parse再进数据库,
不过没说你资料量有多少,
读进数据库只要几秒的量,
什么做法也没差了。
不过为什么一个档案一个parse,
每个档案资料名称差异很大吗?
个人作法应该会是整个parse写好,
自动open excel档parse完直接塞数据库,
就是一次写完就放给它全自动完成,
不过重点还是在于parse做的准不准确吧。
作者: os653   2016-04-01 05:52:00
是的,档案名称差异很大,我试着把所有文字部分抓出来比对五个档案的文字部分(不重复)大概都是1xx个但是这五个档案完全相同的文字部分只有2x个资料量并不大,但是看来文字部分的歧异很大所以才考虑一份 Excel 写一个 parser,但这感觉又有点蠢...我在想能不能让 parser 能读某种定义档这样可以每个 Excel 写一份定义档就好,parser 维持不变但定义档要怎么设计就又没概念了,不知道有没有现成的可抄
作者: Yshuan (倚絃)   2016-04-01 09:50:00
我可能会找能吃EBNF的paeser吧
作者: os653   2016-04-01 17:15:00
看了一下EBNF,好像不是我想要的Q_Q
作者: largesperm (reindeer)   2016-04-01 21:57:00
自己建 dict mapping 一开始当然会比较辛苦但是久了 dict 就很丰富了 "珍奶" "珍珠奶茶" 自动mapping 成为 珍奶第一步先 mapping 第二部就可以直接 parse 了每一个 excel 都可以套用同一个 parserif itemName == "珍珠奶茶": itemName = "珍奶"读进来的时候顺便检查名称 有找到就直接改掉最后你就可以统整了if itemName in dict.keys(): itemName = dict[itemName] key 是改名前 value 是改名后1xx个 建 dict 应该不会花太久时间
作者: os653   2016-04-02 00:50:00
好吧,看来也只能这样了,一个一个慢慢加

Links booklink

Contact Us: admin [ a t ] ucptt.com