2015-10-13 80 views
1

我有兩個不同列名的Dataframe我想加入。我還沒有找到具有兩個不同名稱或使用列索引的連接的示例。Python DataFrame加入特定列索引?

fileDf = pd.read_csv(fileMeta, sep=delimiter, error_bad_lines=False) 
lakeDf = pd.read_csv(lakeData, sep=delimiter, error_bad_lines=False) 

在fileDF中我有索引7或DATASET_ID。在lakeDF我有TBL_ID或索引0我想加入。如果有兩個不同的名稱/索引,我該怎麼做?

編輯:還是不合並,這裏是樣品從。頭()

-----------------file DF------------------- 
    FILE_ID  CREATION_DT_TM entityType    FILE_LOCATION OWNER \ 
0 268159 2015/08/12T03:52:58  File /src/impacs/im_acct.dat/ null 
1 268165 2015/08/22T05:03:51  File /src/impacs/im_acct.dat/ null 
2 268173 2015/07/18T04:48:12  File /src/impacs/im_acct.dat/ null 
3 268177 2015/09/09T05:17:03  File /src/impacs/im_acct.dat/ null 
4 268179 2015/07/28T04:31:06  File /src/impacs/im_acct.dat/ null 

    PUBLICATION_DT_TM FILE_SIZE DATASET_ID   last_modified NAV_ID \ 
0    null 22095504000  578748 2015-10-07 08:16:48.0 null 
1    null 22169091000  578748 2015-10-07 08:16:48.0 null 
2    null 21933828000  578748 2015-10-07 08:16:48.0 null 
3    null 22279575000  578748 2015-10-07 08:16:48.0 null 
4    null 21994644000  578748 2015-10-07 08:16:48.0 null 


[5 rows x 22 columns] 
-----------------lake DF ------------------ 
    TBL_ID TBL_ADDITIONAL_INFO TBL_API TBL_ARCHIVECRITERIA \ 
0 576781    null null    null 
1 576782    null null    null 
2 576783    null false    null 
3 576784    null null    null 
4 576785    null false    null 
+1

是,'fileDf.merge(lakeDf left_on = 'DATESET_ID',right_index = TRUE)' – EdChum

+0

我不清楚TBL_ID是否爲列或索引,如果它是一個列,那麼以下應該工作:'fileDf.merge(lakeDf。 left_on ='DATESET_ID',right_on ='TBL_ID')' – EdChum

+0

所以我嘗試了兩種方法,但它似乎是抓取所有列名但沒有數據?我仔細檢查過,發現他們都有相同的唯一鍵加入。 – theMadKing

回答

1

可以對LHS和RHS不同的列合併,另外,你可能需要指定合併類型你的情況,你有在LHS重複值,那麼你可以選擇執行 '左' merge

fileDf.merge(lakeDf. left_on='DATESET_ID', right_index=True, how='left')