簡體   English   中英

如何在 pandas 中合並數據框

[英]How to merge dataframes in pandas

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

df2 = pd.DataFrame({
    "A": ["A1", "A22", "A2", "A3"],
    "C": ["C0", "C231", "C2", "C3"],
    "B": ["B0", "B1", "B34", "B2313"],
    "D": ["D0", "D1", "D2", "D3"],},
    index=[0, 1, 2, 3])

我需要做什么才能獲得具有相似值但值不匹配的 dataframe,設置 NaN? 例如:

df3 = pd.DataFrame({
    "A": ["A1", "NaN", "A2", "A3"],
    "B": ["B0", "B1", "NaN", "NaN"],
    "C": ["C0", "NaN", "C2", "C3"],
    "D": ["D0", "D1", "D2", "D3"],},
    index=[0, 1, 2, 3])

嘗試:

df = df1[df1 == df2]

df

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

鑒於 df1 和 df2 具有相同的形狀和相同的索引/列名(在像這樣的直接比較任務中,您會期望這一點),您可以將條件索引用作:

df3 = df1[df1 == df2]

結果是

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

暫無
暫無

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

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