簡體   English   中英

通過索引和列連接兩個DataFrame

[英]Join two DataFrames by index and columns

我正在嘗試按索引連接兩個DataFrames ,這些索引可以包含共同的列,並且我只想在該特定值為NaN或不存在的情況下向另一個添加一個。 我以熊貓為例,所以我得到了:

df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],
                    'B': ['B0', 'B1', 'B2', 'B3'],
                    'C': ['C0', 'C1', 'C2', 'C3'],
                    'D': ['D0', 'D1', 'D2', 'D3']},
                    index=[0, 1, 2, 3])

    A   B   C   D
0  A0  B0  C0  D0
1  A1  B1  C1  D1
2  A2  B2  C2  D2
3  A3  B3  C3  D3

df4 = pd.DataFrame({'B': ['B2p', 'B3p', 'B6p', 'B7p'],
                    'D': ['D2p', 'D3p', 'D6p', 'D7p'],
                    'F': ['F2p', 'F3p', 'F6p', 'F7p']},
                    index=[2, 3, 6, 7])

    B    D    F
2  B2p  D2p  F2p
3  B3p  D3p  F3p
6  B6p  D6p  F6p
7  B7p  D7p  F7p

搜索結果為:

    A    B   C    D   F
0  A0   B0  C0   D0  Nan
1  A1   B1  C1   D1  Nan 
2  A2   B2  C2   D2  F2p
3  A3   B3  C3   D3  F3p
6 Nan  B6p Nan  D6p  F6p
7 Nan  B7p Nan  D7p  F7p

這是combine_first一個好用例,其中結果數據幀的行索引和列索引將是兩者的並集,即,在其中一個數據幀中沒有索引的情況下,將使用另一個數據幀的值(相同的行為好像它包含一個NaN

df1.combine_first(df4)

    A    B    C    D    F
0   A0   B0   C0   D0  NaN
1   A1   B1   C1   D1  NaN
2   A2   B2   C2   D2  F2p
3   A3   B3   C3   D3  F3p
6  NaN  B6p  NaN  D6p  F6p
7  NaN  B7p  NaN  D7p  F7p

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM