簡體   English   中英

僅附加來自第二個數據幀的唯一行

[英]Append Only Unique Rows from Second Dataframe

給定 2 個數據幀,如何僅將唯一行附加到第二個 df 的主 df 中?

例如,給定這兩個數據幀:

輸入數據幀

...我怎樣才能得到這個結果?:

想要的結果

我想以某種方式涉及索引,因為我的應用程序將使用 datetimeindex。 一個可重現的代碼,我的連接嘗試如下:

import pandas as pd 

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],
)

print(df1)
print()


df2 = pd.DataFrame(
    {
        "A": ["A2", "A3", "A4", "A5"],
        "B": ["B2", "B3", "B4", "B5"],
        "C": ["C2", "C3", "C4", "C5"],
        "D": ["D2", "D3", "D4", "D5"],
    },
    index=[2, 3, 4, 5],
)

print(df2)
print()

result = pd.concat([df1, df2], join="inner", ignore_index=False)

print(result)

只是在你的情況下merge

out = df1.merge(df2,how='outer')
    A   B   C   D
0  A0  B0  C0  D0
1  A1  B1  C1  D1
2  A2  B2  C2  D2
3  A3  B3  C3  D3
4  A4  B4  C4  D4
5  A5  B5  C5  D5

連接后,您可以使用 drop_duplicate() 函數刪除重復項。

import pandas as pd 

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],
)

print(df1)
print()


df2 = pd.DataFrame(
    {
        "A": ["A2", "A3", "A4", "A5"],
        "B": ["B2", "B3", "B4", "B5"],
        "C": ["C2", "C3", "C4", "C5"],
        "D": ["D2", "D3", "D4", "D5"],
    },
    index=[2, 3, 4, 5],
)

print(df2)
print()

result = pd.concat([df1, df2], join="inner", ignore_index=False)

result = result.drop_duplicates()

print(result)

https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.drop_duplicates.html

暫無
暫無

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

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