讓我們在python中成為以下兩個DataFrame:
東風:
| 代碼_1 | 其他 |
|---|---|
| 19001 | 白色的 |
| 19009 | 藍色的 |
| 19008 | 紅色的 |
df_1:
| 代碼_1 | 代碼_2 |
|---|---|
| 19001 | 00001 |
| 19001 | 00002 |
| 19009 | 00003 |
| 19008 | 00001 |
我想將 df 與 df_1 合并:
df_merge = pd.merge(df, df_1, how="left", on=['code_1'])
df_merge:
| 代碼_1 | 其他 | 代碼_2 |
|---|---|---|
| 19001 | 白色的 | 00001 |
| 19001 | 白色的 | 00002 |
| 19009 | 藍色的 | 00003 |
| 19008 | 紅色的 | 00004 |
在 code_1 的情況下,我希望合并洗掉重復項,并且只對第一行進行合并。我可以為 [other, code_1] 做一個 drop_duplicates,但我想知道是否可以在合并函式中包含一些引數來直接執行此操作。
預期結果:
| 代碼_1 | 其他 | 代碼_2 |
|---|---|---|
| 19001 | 白色的 | 00001 |
| 19009 | 藍色的 | 00003 |
| 19008 | 紅色的 | 00004 |
uj5u.com熱心網友回復:
在我看來,沒有pandas.merge()適合您需求的特定引數,但是您可以通過在合并之前洗掉重復項來減少結果,假設只有重復項df_1:
df_merge = df.merge(df_1.drop_duplicates('code_1'), how="left", on=['code_1'])
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/527456.html
