2017-10-10 149 views
-1

我有兩個dataframessuming 2個dataframes大熊貓蟒蛇

  colA colB amount1 amount2  key 
maindf = xx  yy  12   1   55_ab 
     qs  rr  13   2   14_rs 

     colA colB amount1  amount2  key   
df = dd  tt  10   5   55_ab 

我要添加場amount1和數據幀DF的量2的值maindf根據現場鍵,得到以下

  colA colB amount1 amount2  key 
maindf = xx  yy  22   6   55_ab 
     qs  rr  13   2   14_rs 
+0

謝謝更正 –

回答

0

如何使用熊貓 - 合併df和創建新的列/列如下所述(只是總結兩列) join - left = maindf,right = df,how ='left',left_on ='key',right_on ='鑰匙'

import pandas as pd 
df = pd.DataFrame({'$a':[1,2], '$b': [10,20]}) # creating fake df 
df2 = pd.DataFrame({'$a':[1,2], '$b': [10,20]} 

dfMerge = pd.merge(left=df, right=df2, how='left', left_on='$a', right_on='$a') 
dfMerge["SUM"] = dfMergeTemp["$b_x"] + dfMergeTemp["$b_y"] 

# print(dfMergeTemp) 

你的情況(也許這將是有意義的重命名列不混淆發生了什麼)

mergedDf = pd.merge(left = maindf, right = df, how = 'left', left_on='key', right_on = 'key') 
+0

我不想額外的列。 –

+0

無論如何,第二個數據框的值直接加到maindataframe的值上嗎? –

+0

您可以刪除任何其他列或只選擇您感興趣的列。所以結果會如你所願,但仍然很簡單。 –

0

這個怎麼樣?

# make main df 
main = pd.DataFrame({'ColA' : ['xx', 'qs'], 
        'ColB' : ['yy', 'rr'], 
        'amount1' : [12, 13], 
        'amount2' : [1, 2], 
        'key' : ['55_ab', '14_rs']}) 

# make other df 
df = pd.DataFrame({'ColA' : ['dd'], 
        'ColB' : ['tt'], 
        'amount1' : [10], 
        'amount2' : [5], 
        'key' : ['55_ab']}) 

# merge dataframes 
df1 = main.merge(df, 
       how = 'left', 
       left_on = 'key', 
       right_on = 'key').fillna(0) 

# sum amount1 
df1.insert(df1.shape[1], 
      'amount1', 
      df1.amount1_x + df1.amount1_y) 

# sum amount2 
df1.insert(df1.shape[1], 
      'amount2', 
      df1.amount2_x + df1.amount2_y) 

# drop unneeded columns 
df1.drop(['amount1_x', 
      'amount2_x', 
      'ColA_y', 
      'ColB_y', 
      'amount1_y', 
      'amount2_y'], 
     axis = 1, 
     inplace = True) 

df

+0

是否有更簡單的事實,我的數據幀看起來更像 –

+0

它有20列的大得多,有些字段的名稱爲'pnb 2016' –

+0

請提供您的實際數據框示例(維度和全部)。如果您沒有提供正確的示例數據,則無法爲您提供答案。 –

0
Pôle  Libellé entité   PNB N-1   PNB N initial  Key 
IBFS  PJSC ROSBANK   -200   0     zz_t55 
IBFS  PJSC ROSBANK   0    1500    bb_y44 
IBFS  PJSC ROSBANK   1000   2000    az_89 
IBFS  PJSC ROSBANK   5000   -250    rr_14 

所以這是maindf 比方說,還有更多的列,我不能完成發佈。 所以我想要從另一個數據框中總結值有相同的關鍵字'PNB N-1'和'PNB N初始'