1. 程式人生 > >python處理Excel資料序列串列問題

python處理Excel資料序列串列問題

接到一個任務,要獲取藥監局所有的進口藥材,國產藥材名錄。寫好爬蟲,一共有十幾萬條的資料,爬下來一看,簡直不忍直視。各種串列,有的在第一行,有的在第三行,有的第五行,沒有任何規律可言。要想用Excel處理,難度很大啊,所以就寫了python指令碼來處理了。

思路是這樣的:

1.用python讀取整行的資料

2.把一整行的資料連成一個字串

3.找出規律(比如表中每一行都有幾個關鍵字,如藥品本位碼:這幾個字),用re正則匹配找出來。

4.重新寫入Excel就可以了。

下面的程式碼不是處理這個表格的程式碼,因為後來又做了其他的專案,規律不一樣(這次是“[]”),所以改了程式碼了。不過思路是一樣的。可以借鑑一下。

import xlrd
import re

file0=xlrd.open_workbook(r'C:\Users\Desktop\12.xlsx')
table0=file0.sheet_by_name('yaojianjuqicai')
nrows=table0.nrows
nclos=table0.ncols
for i in range(1,nrows):
name=table0.row_values(i)
    print(i)
    str = ''.join('%s'%i for i in name)#連成一個字串
    #print(str)
dd=re.findall(r'^\[(.*?)\]$'
,str,re.S) #dd=list(dd[0])#如果寫入Excel的時候遇到tuple不可寫入的報錯,就用這個。 print(dd) for i in dd: out='{},'.format(i) with open('yjjqicainew.csv','a+')as f: f.write(out) with open('yjjqicainew.csv', 'a+')as f: f.write('\n')

看看處理之後的效果吧


總結經驗:

其實以上問題在爬蟲的時候,寫好程式碼就可以避免了,我因為怕網站的資料不規範,所以爬下來才修改。

建議在爬的時候,加入一些符號,比如&號等,後面可以用Excel分列,十分方便。