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