2014-02-25 105 views
0

我有兩個不同的數據框,其中一個是另一個的擴展版本。 (1)如何根據兩個數據框共享相同的名稱來有效地組合這兩個數據框? (2)還有一種方法可以在stackoverflow框中爲代碼添加四個空格,而不必爲每行輸入四個空格嗎?這可能很耗時。組合不同長度的數據幀

詳情

一個是完全數據框用值(sortedregsubjdf)的多個表。另一隻包含其他數據幀的唯一值(因爲它是網絡中心性的數據幀) - 所謂sortedcentralitydf

sortedregsubjdf

Name Organization Year Centrality 
6363 (Buz) Business And Commerce  doclist[524] 2012 0.503677 
8383 (Buz) Business And Commerce  doclist[697] 2012 0.503677 
1170 (Buz) Business And Commerce  doclist[103] 2012 0.503677 
1579 (Eco) Economics News doclist[140] 2013 0.500624 
10979 (Gop) Provincial Government News doclist[941] 2013 0.5
4374 (Gop) Provincial Government News doclist[368] 2013 0.5
10988 (Npt) Not-For-Profits doclist[942] 2013 0.498810 

sortedcentralitiesdf(企業和商業,因爲它包含只出現一次獨特的值,其中sortedregsubjdf有多個值)

Name Centrality 
316  (Buz) Business And Commerce  0.503677 
448  (Eco) Economics News 0.500624 
499  (Gop) Provincial Government News 0.5
366  (Npt) Not-For-Profits 0.498810 
217  (Pdt) New Products And Services  0.504600 

這是我的代碼來結合兩個dataf謠言,但我想知道是否有更有效的方式來做到這一點?

for i, val in enumerate(sortedcentralitydf.Name): 
    for x, xval in enumerate(sortedregsubjdf.Name): 
     if val == xval: 
     #print val, xval 
      sortedregsubjdf.Centrality[sortedregsubjdf.Name == xval] = sortedcentralitydf.Centrality[sortedcentralitydf.Name == val].iloc[0] 
+1

有一個代碼示例符號'{}',您可以用它來格式化代碼。此外,它看起來像你有大量的問題沒有被接受的答案。接受答案是向那些幫助你的人表示感謝,並向未來的讀者表明哪些解決方案有效地解決了問題。 – ChrisP

+0

謝謝克里斯。新的到stackoverflow。我剛剛接受了一堆答案。 – user3314418

回答

2

熊貓有merge功能。這聽起來像這樣的東西會工作...

import pandas as pd 
merged_df = pd.merge(sortedregsubjdf, sortedcentralitiesdf, on='Name') 
+0

這太棒了。我很高興這很簡單 – user3314418

相關問題