我有兩個資料框DB和compareDF. 我正在嘗試以相同的值比較和匹配這兩個資料幀phone_number,這是可行的,但是在行匹配之后,我想將customer_code(另一列)從值匹配的位置添加DB到compareDF['cmp2']匹配的位置,這不起作用(它不添加customer_code 來自匹配行,而是從 customer_code 開始一個接一個地添加值DB)
m1 = compareDF['phone_number'].isin(DB['phone_number'])
compareDF['cmp2'] = DB['customer_code'].where(m1)
我有這些
# DB
0 phone_number customer_code
1 055 1
2 077 2
3 088 3
# compareDF
0 phone_number cmp2
1 077
2 088
3 055
我要這個
# compareDF
0 phone_number cmp2
1 077 2
2 088 3
3 055 1
我得到這個
# compareDF
0 phone_number cmp2
1 077 1
2 088 2
3 055 3
uj5u.com熱心網友回復:
您需要使用merge并加入phone_number密鑰上的兩個資料集。compareDF也應該是此聯接中的主表。
df1.merge(df, how="inner", on="phone_number").rename(columns={"customer_code": "cmp2"})
# where
df = pd.DataFrame({"phone_number": ["055", "077", "088"], "customer_code": [1, 2, 3]})
df1 = pd.DataFrame({"phone_number": ["077", "088", "055"]})
# gives
phone_number cmp2
0 077 2
1 088 3
2 055 1
uj5u.com熱心網友回復:
這可以直接用merge完成,可以通過df.columns = [xxx]修改列名:
res = pd.merge(db, compareDF)
res.columns = ["phone_number", "cmp2"]
print(res)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/431714.html
標籤:Python python-3.x 数据框
上一篇:將集合字典轉換為熊貓資料框
