我有兩個資料框,一個來自具有以下欄位的資料庫:
| 姓名 | ID |
|---|---|
| 面包店 | 010203040000150 |
| 店鋪 | 010203040000160 |
| 市場 | 010203040000180 |
| 醫院 | 010203040000190 |
| 面包店 | 010203040000200 |
我需要比較另一個資料框才能更新 ID:
| 姓名 | ID |
|---|---|
| 面包店 | 1020304050 |
| 店鋪 | 010203040000160 |
| 市場 | 010203040000180 |
| 醫院 | 3040506070 |
| 面包店 | 010203040000200 |
我只需要使用我需要更新的 ID 創建第三個資料框,查看名稱,如果該名稱更新了 ID,那么我創建該資料框。
我怎樣才能做到這一點?
預期輸出:
| 姓名 | ID |
|---|---|
| 面包店 | 1020304050 |
| 醫院 | 3040506070 |
uj5u.com熱心網友回復:
假設第一個是df1第二個df2:
df2.join(df1, on="name").where(df1["id"] != df2["id"]).show()
-------- ---------- ---------------
| name| id| id|
-------- ---------- ---------------
|bakarery|1020304050|010203040000150|
|hospital|3040506070|010203040000190|
-------- ---------- ---------------
或者也:
df2.subtract(df1).show()
-------- ----------
| name| id|
-------- ----------
|bakarery|1020304050|
|hospital|3040506070|
-------- ----------
uj5u.com熱心網友回復:
d = {'bakery':'010203040000150','store':'010203040000160'}
import pandas as pd
df1=pd.DataFrame(data=d,index=[0])
d1={'bakery':'1020304050','store':'010203040000160'}
df2=pd.DataFrame(data=d1,index=[0])
df3=df1==df2
df4=df2.mask(~df3).fillna(df2)
df4
bakery store
0 1020304050 010203040000160
上面的代碼是針對一個小樣本執行的,但它應該可以完成這項作業。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/481495.html
上一篇:如何選擇類別中具有最大值的行?
