如果在列表中找到另一列的值,如何从 df 的一列返回值

时间:2021-07-26 12:53:07

标签: python pandas

我对 python 比较熟,主要是用 Pandas 做数据分析。

我有一个 bool,有 2 列,DataFrameA,然后是一个名为 B 的值列表。 我需要我的代码来检查 C 中的每个值是否在列表 df.B 中,对于所有 C,然后将 True 中的相应值返回到列表中。< /p>

我尝试过使用 df.A 循环,后来找到了 for 函数,但就是不知道如何以一种方式使用这两个函数中的任何一个来得到我的结果需要。我真的很感激任何帮助或提示!

2 个答案:

答案 0 :(得分:2)

使用:

df.loc[df['B'].isin(C), 'A'].tolist()

答案 1 :(得分:1)

当您可以使用 Pandas 本地选择内容时,切勿使用循环。

df[df.B.isin(C)].A.to_list()

如果 B 名称不是单个单词(例如 COLUMN NAME),请使用:

df[df['B'].isin(C)]['A'].to_list()

df.B.isin(C) 将根据 B 中的值是否在 C 中返回一系列真/假。然后使用它来选择原始数据框中的行。最后,选择列 A 并转换为列表。