數據清洗一:

 

 原數據格式:

  

轉換的目標格式:

 

腳本目的:轉換數據的格式,屬於數據清洗部分。
腳本邏輯,將文件讀取後,將第一列設置爲key,第三列設爲列表組成的value,建立dict;然後循環dict來統計items兩兩之間重複的id以及其數目。
#!/usr/bin/python
import sys
import pandas as pd
f1=sys.argv[1]
f2=sys.argv[2]
t1 = pd.read_excel(f1)
t1["geneID"]=t1["geneID"].str.split("/",expand=False)
t1.head()
t2 = t1.set_index("Description")
t3 = t2["geneID"].to_dict()
t4=dict()
listid=[]
for i in t3:
    for j in t3:
        if i==j:
            continue
        elif [j,i] in listid:
            continue
        else:
            listid.append([i,j])
            key=str(i)+"+"+str(j)
            value=list(set(t3[i]) & set(t3[j]))
            t4[key]=value
out=open(f2,'w')
print ("Pathway1","\t","Pathway2","\t","Count","\t","id",file=out)
for i in t4.keys():
    count=len(t4[i])
    if count >4 :
        c=";".join(t4[i])
        p1=i.split("+")[0]
        p2=i.split("+")[1]
        print (p1,"\t",p2,"\t",count,"\t",c,file=out)
out.close()

 

 

利用pandas包對excel表中的內容進行讀取:

  pd.read_excel() 主要函數解讀: io表格具體路徑,sheetname 讀取表格中的哪個Sheet,可以是整數或Sheet名稱,converters 指定將讀取內容轉換成哪種格式 eg: converters = {0:str}