pandas 使用考拉 Dataframe 中的.isin检查两个 Dataframe 在列中是否具有相同的值

qncylg1j  于 2023-03-16  发布在  其他
关注(0)|答案(2)|浏览(156)

我有一个小问题,在比较两个 Dataframe 和 Dataframe 详细如下。 Dataframe 详细如下都是在考拉。

import databricks.koalas as ks

mini_team_df_1 = ks.DataFrame(['0000340b'], columns = ['team_code'])

mini_receipt_df_2 = ks.DataFrame(['0000340b'], columns = ['team_code'])

mini_receipt_df_2['match_flag'] = mini_receipt_df_2['team_code'].isin(ks.DataFrame(mini_team_df_1))

mini_receipt_df_2

我在数据块上执行这段代码,我希望mini_receipt_df_2应该有如下输出:

team_code   match_flag

0   0000340b     True

但在上面显示的代码中,输出如下所示:

team_code   match_flag
0   0000340b     False

这对我来说毫无意义,因为使用.isin函数将为team_code = 0000340b提供True值,因为这在两个 Dataframe 中是相同的。
有谁能帮我弄明白出了什么问题吗?
谢谢

bnl4lu3b

bnl4lu3b1#

试试这个:

mini_receipt_df_2['match_flag'] = np.isin(mini_team_df_1['team_code'].to_numpy(), mini_receipt_df_2['team_code'])

输出:

>>> mini_receipt_df_2
  team_code  match_flag
0  0000340b        True
lztngnrs

lztngnrs2#

mini_receipt_df_2.merge(mini_team_df_1,how='left',suffixes=[None,'_2'])\
    .assign(match_flag=True)

out:

  team_code  match_flag
0  0000340b        True

相关问题