簡體   English   中英

Pandas 兩列合並

[英]Pandas Merging on two columns

我是 pandas 的新手,想在兩列的幫助下合並兩個表。 一行只能通過兩列的組合來識別。

Example:
Table 1.               Table2.  
Index A B C D.         Index A B C 
 1.   a a c d.         1.    a b j
 2.   a b e f.         2.    a c k
 3.   a c g h


Result:

Table
Index A B C D E
 1.   a a c d na
 2.   a b e f j
 3.   a c g h k


I tried something like:

df_new = df_1.merge(df_2, on=[‘A’,’B’]

但我得到錯誤 B 不是唯一的

(在實際情況下,該表多次包含 a 和 b 中的每個值,但組合是唯一的。)

提前謝謝了。

先拿你想試驗的庫侖,然后用這段代碼作為例子。

a_dataframe["AB"] = a_dataframe["A"] + a_dataframe["B"]

然后加上庫侖的rest。 可能有一個更簡單的解決方案。

就我而言,它有效:

import pandas as pd

df1 = pd.DataFrame({"A":["a","a","a"], 
                    "B":["a", "b", "c"], 
                    "C":["c", "e", "g"],
                    "D":["d", "f", "h"]})

df2 = pd.DataFrame({"A":["a", "a"], 
                    "B":["b", "c"], 
                    "C":["j", "k"]})

Output:

pd.merge(df1, df2, on=["A", "B"], how="left").rename(columns={"C_x":"C", "C_y":"E"})

    A   B   C   D   E
0   a   a   c   d   NaN
1   a   b   e   f   j
2   a   c   g   h   k

暫無
暫無

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

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