当前位置: 首页 > 知识库问答 >
问题:

在Pandas[重复]中将一列中的随机排序值与另一列进行匹配

习华灿
2023-03-14

大家好,

我正在使用电子邮件验证软件来检查数据集中的电子邮件是否有效。如何使用 pandas 将名为“有效电子邮件”的列中的电子邮件与“电子邮件”列中的电子邮件匹配,并返回“Good_Email”中的值?需要明确的是,结果可能看起来像

              Good_Email

              bob_45@gmail.com
              nan
              tom34@gmail.com
              nan

此外,让我们假设名为“有效电子邮件”的列将与“电子邮件”列相比随机排序,并且可以缩短长度。(即与示例中所示完全相同)。

提前感谢!

共有1个答案

上官华池
2023-03-14

您可以使用<code>。where()与一起使用。isin(),如下所示:

df['Good_Email'] = df['Email'].where(df['Email'].isin(df['Valid Email']))
data = {'Name': ['Bob', 'Jack', 'Tom', 'Mike'],
 'Email': ['bob_45@gmail.com', np.nan, 'tom34@gmail.com', 'mike@gmail.com'],
 'Valid Email': ['tom34@gmail.com', 'bob_45@gmail.com', np.nan, np.nan]}

df = pd.DataFrame(data)

df['Good_Email'] = df['Email'].where(df['Email'].isin(df['Valid Email']))

输出:

print(df)

   Name             Email       Valid Email        Good_Email
0   Bob  bob_45@gmail.com   tom34@gmail.com  bob_45@gmail.com
1  Jack               NaN  bob_45@gmail.com               NaN
2   Tom   tom34@gmail.com               NaN   tom34@gmail.com
3  Mike    mike@gmail.com               NaN               NaN

 类似资料:
  • 问题内容: 在Pandas DataFrame中,我可以使用函数将列值与另一列进行匹配。 例如:假设我们有一个DataFrame: 和另一个DataFrame: 我可以使用的功能相匹配的列值对的列值 例如: 产量: PySpark DataFrame中的等效操作是什么? 上面的代码给我一条错误消息: 问题答案: 这种操作在spark中称为“左半联接”:

  • 问题内容: 如何有效地洗净大型(1m至5m记录)表的内容?已知该列具有唯一值,但是您可以假定为此删除了所有约束。我之所以头痛,主要是因为我正在更新选择的同一列。我的目标是使用PL / SQL做到这一点,以便我可以以编程方式采取其他措施,例如记录或更新其他表。 我最近的尝试是创建一个使用的游标,并尝试基于行数进行合并或更新。也许我可以通过创建一个临时表来解决修改自我约束的问题?我相当有信心Oracl

  • 问题内容: 这是从单个表中进行的简单选择。目的是选择四个随机乘积,从x个类别的每一个类别中选择一个,并具有几个“ where”限制。我已经试过了: 这种类型的作品,但始终会返回任何给定类别的相同产品。我想更改显示的产品,同时仍然只显示任何给定类别的单个产品。 我也尝试过: 我在想,也许它需要两个选择-第一个选择一个随机的4个类别,第二个选择从每个类别中选择一个随机行,但是a。不知道该怎么做,以及b

  • 问题内容: 我有一个这样的字符串列表: 使用Y中的值对X进行排序以获取以下输出的最短方法是什么? 具有相同“键”的元素的顺序无关紧要。我可以求助于for结构的使用,但我好奇是否有更短的方法。有什么建议么? 问题答案: 最短代码 例: 一般来说 解释: 两个。 创建一个新的,list基于zip使用排序sorted()。 使用列表推导从排序的,压缩的中提取每对的第一个元素list。

  • 如您所见,月份不按日历顺序排列。所以我创建了第二列来获取每个月(1-12)对应的月份号。从那里,我如何根据日历月份的顺序对此数据帧进行排序?

  • 问题内容: 我需要将DataFrame中除第一列之外的所有列除以第一列。 这是我正在做的事情,但我想知道这是否不是“正确的”熊猫方式: 有没有办法做类似的事情?(这只是给出了一个10x12的数据框。) 另外,在阅读了关于SO的一些类似问题之后,我尝试了一下,但是给出了广播错误。 问题答案: 我相信并工作。