2016-03-20 12 views
0

Ben iki veri çerçeveleri sahip şekilde bu dataframes aitBir veri çerçevesini, benzersiz dizin girişleriyle biriyle tekrarlanan dizin girişleriyle nasıl birleştirebilirim?

enter image description here

Bir tekrarlanır bir dizin vardır ve ben o kadar olmadığı başka dataframe ile onlara katılmak istiyorum. Örneğin

Dataframe I =

[ index column1] 
leb  Lebanon 
iso  iso1 
CAN   Canda 

DataFrame I2 =

Dataframe Itot =

DataFrame I2= 
[ index column1  column2] 
leb  ra   Lebanon 
CAN  ba   Canada 
CAN   gell  canada 

Bir

Ben birleştirmek istediğiniz
[ index column1] 
leb  ra 
CAN  ba 
CAN   gell 

olduğunu onlara öyle ki bire bir birleştirme Stata, http://www.stata.com/manuals13/dmerge.pdf s.7'de görülebilir.

+0

Pandalardaki varsayılan birleştirme bire bir olduğuna inanıyorum. Sadece endeksle birleştirmek zorundasınız. Bu sana istediğini vermeli. '' df1 = pd.DataFrame (["Lübnan", "iso1", "Canda"], sütunlar = ["column1"], dizin = ["leb", "iso", "CAN"]) ' '' df2 = pd.DataFrame (["ra", "ba", "gel1"], sütunlar = ["column2"], index = ["leb", "CAN", "CAN" ]) '' '' pd.merge (df1, df2, right_index = Doğru, left_index = Doğru) '' ' – Ben

cevap

0

bu DataFrame

df = pd.DataFrame({'Year': [2010,2009,2008], 
         'population_A': ['101597.0', '101416.0', '101342.0'], 
         'Country':['Aruba', 'Aruba', 'Aruba']}) 

    df = df.set_index(['Country']) 
    df 

df1 = pd.DataFrame({'Country':['Aruba','Afghanistan','Africa','Lebanon'], 'iso3c':['ABW','AFG','AFR','LEB']}) 
df1 = df1.set_index(['Country']) 
df1 

ülkenin farklı bir indeks olan ilk dataframe ihtiyaç Bunu yapmak için olmak olmayan diğer tekrarlayan dataframe düşünün düşünün id 0,1 söylemek , 2, ...

df.reset_index(level=0, inplace=True) 
df 
df.join(df1, on='Country') 

bu o

olduğunu 0
İlgili konular