如何在不获取额外行的情况下合并两个数据帧?

2024-06-16 00:38:21 发布

您现在位置:Python中文网/ 问答频道 /正文

基本上,我有两个数据帧,第一个看起来像这样:

df1

第二个是这样的:

df2

我想得到第二个数据框中的列“lat”和“lnt”,并且仅当城市名称在两个数据框中匹配时才添加到第一个数据框中。我尝试使用pd.merge(),但它正在创建具有重复值的新行。 如果可能的话,我想在没有任何匹配的行中添加一个NaN,但我不想删除或向原始数据帧添加行


2条回答

Pandas merge function默认为内部联接。因为您希望在df2df1的列中合并,所以应该使用左联接。这将为您提供df1的所有行以及df2中的匹配值

df3 = df1.merge(df2, on = 'city', how = 'left')
merged_df = df1.merge(df2, how = 'inner', on = ['City'])

相关问题 更多 >