[英]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.