我已經使用條件語句(未顯示)從2個輸入文件生成了2個字典。然後,我打算使用這兩本字典來確定重疊值。然後,我想直接使用迭代的輸出作爲熊貓數據框。爲此,我首先將iteration/for循環輸出到一個文件(Output.xls)中,然後將該文件作爲pandas數據框讀取。雖然這很好,但我想知道是否有一種方法可以直接將迭代中的'newline'用作空熊貓數據框的輸入。除了dataFrame.from_dict之外,我找不到Python上的選項。然而,這需要1個字典,但我有多個字典,我正在聯合在一起,以及我正在使用的其他變量。將字典上的迭代轉換爲熊貓數據框
exp1_dict.items() is: [('lnc3', ['SPATA1', 'AHNAK', 'FGG', 'ERAP1', 'HZ', 'SAASDAS', 'NLRC5', 'HUWE1']), ('lnc2', ['SPATA1', 'FGG', 'TMEM68', 'ATP6AP', 'HUWE1']), ('lnc1', ['SPATA1', 'AHNAK', 'FGG', 'TMEM68', 'ERAP1', 'ATP6AP', 'SAASDAS', 'RAD17', 'HUWE1'])] exp2_dict.items() is: [('lnc3', ['SPATA1', 'AHNAK', 'TMEM68', 'ERAP1', 'HZ', 'RAD17', 'NLRC5', 'HUWE1']), ('lnc2', ['SPATA1', 'FGG', 'ERAP1', 'HZ']), ('lnc1', ['SPATA1', 'AHNAK', 'FGG', 'TMEM68', 'ERAP1', 'HZ', 'ATP6AP', 'RAD17']), ('lnc4', ['ERAP1', 'PRSS16', 'HZ', 'NLRC5'])]
遍歷字典,併產生 '換行' 的代碼是:
out.close()
new_input=pd.read)table("Output.xls", index_col=0)
代替創建:
out = open("Output.xls", "w") #generates an empty output file
out.write('Header1\tHeader2\tHeader3\tHeader4\tHeader5\tHeader6\tHeader7\tHeader8\tHeader9\tHeader10\tHeader11\n')#Adds header to output file
intersection_dict={} #empty intersection header
for key, value1 in exp1_dict.items(): #reiterates over the 2 dictionaries
if key in exp2_dict.keys():
intersection_dict[key]=list(set(value1).intersection(exp2_dict[key]))
newline=key, str(f_exp1_dict[key]), str(f_exp2_dict[key]), str('|'.join(value1)), str(len(exp1_dict[key])), str(len(exp1_corr.index)), str('|'.join(exp2_dict[key])), str(len(exp2_dict[key])), str(len(exp2_corr.index)), str('|'.join(intersection_dict[key])), str(len(intersection_dict[key]))
out.write('\t'.join(newline)+'\n')
我然後使用熊貓數據幀讀出的文件Output.xls一個輸出文件然後輸入它作爲一個熊貓數據框,我想知道是否有一種方法來寫一個空的熊貓數據框「空行」上面的頭直接上面。
的Output.xls文件看起來是這樣的:
Header1 Header2 Header3 Header4 Header5 Header6 Header7 Header8 Header9 Header10 Header11 lnc3 4 4 SPATA1|AHNAK|FGG|ERAP1|HZ|SAASDAS|NLRC5|HUWE1 8 12 SPATA1|AHNAK|TMEM68|ERAP1|HZ|RAD17|NLRC5|HUWE1 8 12 HZ|ERAP1|AHNAK|HUWE1|NLRC5|SPATA1 6 lnc2 2 3 SPATA1|FGG|TMEM68|ATP6AP|HUWE1 5 12 SPATA1|FGG|ERAP1|HZ 4 12 SPATA1|FGG 2 lnc1 1.5 2 SPATA1|AHNAK|FGG|TMEM68|ERAP1|ATP6AP|SAASDAS|RAD17|HUWE1 9 12 SPATA1|AHNAK|FGG|TMEM68|ERAP1|HZ|ATP6AP|RAD17 8 12 ERAP1|RAD17|AHNAK|TMEM68|ATP6AP|SPATA1|FGG 7
幾乎可以肯定,有一個簡單的方法可以做到這一點。然而,我很不清楚輸入是什麼樣的。如果問題簡化了,我會更容易幫忙。 – piRSquared
@piRSquared thx評論。我已經添加了上面的字典。我希望有所幫助。 – BioProgram
我認爲這是Python 3?另外,什麼是'f_exp1_dict'和'f_exp2_dict'? – Alexander