对Pandas数据框中的特定重复行执行合并

fhity93d  于 2022-11-05  发布在  其他
关注(0)|答案(1)|浏览(150)

让我们在python中得到如下两个DataFrame:
df:
| 代码_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_合并:
| 代码_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号|

ldioqlga

ldioqlga1#

在我看来,pandas.merge()没有符合您需要的特定参数,但是您可以在合并之前删除重复项来减少结果,假设df_1中只有重复项:

df_merge = df.merge(df_1.drop_duplicates('code_1'), how="left", on=['code_1'])

相关问题