合并并只获得pandas中列的子集



我有两个熊猫数据框架,如下:

df1:
id    name1
123   AAA
345   BBB
df2:
id_1   city address_1  address_2 province country mail
123    SFO  -          -         -        -       -
234    TO   -          -         -        -       -
345    NY   -          -         -        -       -

我正在合并df1和df2,但在结果中我只需要"城市"列从df2。一种方法是合并并把它们放到下面

df_merged = pd.merge(df1,df2,left_on='id',right_on='id_1',how='left').drop(columns=['address_1',..])

但是如果列数比较多,在drop函数中指定所有不必要的列会变得很繁琐。只是想知道是否有一种有效的方法来指定合并所需的列。

如有任何建议,不胜感激。

如果您只需要城市列,您可以这样做:

df_merged = pd.merge(df1,df2,left_on='id',right_on='id_1',how='left')['City']

当然,如果您需要更多,您可以添加它们。只是要确保添加了第二个括号,因为对于>1列,需要传递一个列表。

您可以在合并步骤中选择df2中的相关列。

df_merged = pd.merge(df1,
df2[[ 'id_1', 'City']],
left_on='id',right_on='id_1',how='left')

相关内容

  • 没有找到相关文章

最新更新