2016-07-30 29 views
-1

這裏是我的代碼片段:在多個CSV匹配的數據有效的方法,文件

for i,r1 in enumerate(Solution.values): 
    h1=ProjectedRevenue.index[i] 
    District_ID,Instrument_ID,Buy_or_not,Revenue=r1 
    listSol=[] 
    listSol.append(h1) 
    listSol.append(list(r1)[0]) 
    listSol.append(list(r1)[1]) 
    for j,r2 in enumerate(ProjectedRevenue.values): 
     h2=ProjectedRevenue.index[j] 
     if h2 == listSol[0]: 
      District_ID,Instrument_ID,Annual_Projected_Revenue= r2 
      listPR=list(r2) 
      if listSol[1] == listPR[1] & listSol[2] == listPR[2]: 
       if(listPR[2]>0): 
        #do stuff 
        continue 
       else: 
        #do stuff 
        continue 

我需要此代碼一些幫助。我是python的新手,我必須搜索和比較來自多個.csv文件的數據條目。我看過itertuples,但無法識別該功能。所以我只是通過熊貓來搜索和執行操作,但是它的複雜度爲$ O(n^2)$,速度很慢。有關於此的任何幫助?

編輯:所以我在代碼中使用熊貓和numpy來操縱數據。爲了使它更清楚,我需要進行搜索,以便兩個不同文件中相同索引顏色的元素相同。考慮下面的例子:

Solution.csv:

Hospital_ID,District_ID,Instrument_ID 
1,4,6 
2,5,4 
7,8,5 

ProjectedRevenue.csv:

Hospital_ID,District_ID,Instrument_ID 
9,3,5 
7,8,5 
1,2,6 

所以這裏的公共入口是兩個files.I 7,8,5希望知道搜索和匹配它們的最快方法。

UPDATE:上一個問題是關於解決的語法錯誤。

+0

我知道以前的錯誤是愚蠢的。你可以請你刪除你的downvote?這不會吸引高質量的答案。 – Rohinb97

+0

您可以發佈樣本CSV和期望/預期數據集/ CSV嗎? – MaxU

+0

是[that](http://stackoverflow.com/a/38675126/5741205)你想要什麼? – MaxU

回答

1

嘗試這種量化的大熊貓方法:

In [22]: fn1 = r'D:\temp\.data\38673647\Solution.csv' 

In [23]: fn2 = r'D:\temp\.data\38673647\ProjectedRevenue.csv' 

In [24]: df1 = pd.read_csv(fn1) 

In [25]: df2 = pd.read_csv(fn2) 

In [26]: df1 
Out[26]: 
    Hospital_ID District_ID Instrument_ID 
0   1   4    6 
1   2   5    4 
2   7   8    5 

In [27]: df2 
Out[27]: 
    Hospital_ID District_ID Instrument_ID 
0   9   3    5 
1   7   8    5 
2   1   2    6 

In [28]: pd.merge(df1, df2, on=df1.columns.tolist()) 
Out[28]: 
    Hospital_ID District_ID Instrument_ID 
0   7   8    5 
+0

我會試試這個。在我接受你之前,我會等待其他答案。 – Rohinb97

+0

我已經嘗試過這種方法,但它似乎很慢。 – Rohinb97

+0

@ Rohinb97,實際上它應該比嵌套循環方法更快__much__,尤其是對於更大的文件 – MaxU

0

使用:結尾處的if檢查。

if h2 == listSol[0]: 
+0

這太愚蠢了。我會糾正這一點。謝謝。 – Rohinb97

+0

關於第二部分的任何事情? – Rohinb97

+1

第二部分使用熊貓模塊 –

相關問題