0
我有兩個文件的信息。我需要合併/連接兩個文件中給定列中相同的行。合併兩個文件中的熊貓
文件:
#chr #start #end #gene #0 #strand
chrM 3307 4262 MT-ND1 0 +
chrM 4470 5511 MT-ND2 0 +
chrM 12337 14148 MT-ND5 0 +
文件B:
#chr #start #end #gene #0 #strand #e_chr #e_start #e_end #e_id #0 #strand
chr1 12337 14148 MT-ND5 0 + chr1 161427010 161427243 Larp7-Chip.MACS2_peak_9704 0 .
chr1 3307 4262 MT-ND1 0 + chr1 161423805 161424053 Larp7-Chip.MACS2_peak_9703 0 .
chr1 4470 5511 MT-ND2 0 + chr1 161429385 161429489 Larp7-Chip.MACS2_peak_9705 0 .
我的結果輸出應該像(主要是文件B排序類似文件):
#chr #start #end #gene #0 #strand #e_chr #e_start #e_end #e_id #0 #strand
chr1 3307 4262 MT-ND1 0 + chr1 161423805 161424053 Larp7-Chip.MACS2_peak_9703 0 .
chr1 4470 5511 MT-ND2 0 + chr1 161429385 161429489 Larp7-Chip.MACS2_peak_9705 0 .
chr1 12337 14148 MT-ND5 0 + chr1 161427010 161427243 Larp7-Chip.MACS2_peak_9704 0 .
我試着使用pandas.DataFrame.merge
通過執行以下操作做到這一點:
import pandas as pd
import numpy as np
FileA = pd.read_table("FileA.txt")
FileB = pd.read_table("FileB.txt")
results = FileA.merge(FileB, how='left', left_on='gene', right_on='gene')
results = results.dropna()
這似乎在第一工作,但某些行丟失。文件A有19,000行,文件B有4,800行。但我的輸出文件只有大約3,8k,當我預計它有4,800。我究竟做錯了什麼?有沒有更簡單的方法來做到這一點?我是python的新手。
這將取決於在你的文件 '基因' 的實際值。我建議你將這些文件分成幾行(每個20個),然後再看一遍。如果問題仍未解決,請發佈數據。 – tfv
我已經完成了Teamtreehouse的Python課程。語法不是問題。我的工作涉及大量的製表符分隔的文件處理,我通常在R中進行。我正在嘗試使用Pandas在Python中執行相同的操作。那是問題嗎? @tfv我給一個鏡頭 – System
多少區域經濟共同體,你通過'.dropna()'掉線?我會從那裏開始。 – siegerts