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