Python Pandas-类似于ISIN,但是“包含”与“完全”匹配

马可·本沃利奥

我正在使用Python Pandas处理两个数据框。第一个数据框包含来自客户数据库的记录(名字,姓氏,电子邮件等)。第二个数据框包含域名列表,例如gmail.com,hotmail.com等。

当电子邮件地址包含第二个列表中的域名时,我试图从客户数据框中排除记录换句话说,当客户的电子邮件地址域出现在域黑名单中时,我需要删除该客户。

以下是示例数据帧:

>>> customer = pd.DataFrame({'Email': [
    "[email protected]", 
    "[email protected]", 
    "[email protected]"], 'First Name': [
    "Bob", 
    "Jim", 
    "Joe"]})

>>> blacklist = pd.DataFrame({'Domain': ["gmail.com", "outlook.com"]})

>>> customer
         Email First Name
0  [email protected]        Bob
1  [email protected]        Jim
2    [email protected]        Joe
>>> blacklist
  Domain
0  gmail.com
1  outlook.com

我想要的输出将是:

>>> filtered_list = magic_happens_here(customer, blacklist)
>>> filtered_list
    Email First Name
0 [email protected]    Bob
1 [email protected]    Jim

到目前为止,我已经尝试过:

  1. 为了消除特定的电子邮件地址,过去我曾经使用过df1[df1['email'].isin(~df2['email'])...但对于我在这里明显描述的用例却无济于事。
  2. 我尝试使用df.apply,但是无法正确使用语法,并且我认为实际数据集的性能将很糟糕。范例:df1['Email'].apply(lambda x: x for i in ['gmail.com', 'outlook.com'] if i in x)尽管这看起来应该可行,但我明白了TypeError: 'generator' object is not callable

剩下的问题是:

  1. 最好的方法是什么?
  2. 为什么生成器不可调用?
  3. ...最终,当排除集中存在电子邮件地址域时,如何从数据框中排除客户?
韦当·梅塔(Vedang Mehta)

代码 -

import pandas as pd


customer = pd.DataFrame({'Email': [
    "[email protected]",
    "[email protected]", 
    "[email protected]"], 'First Name': [
    "Bob", 
    "Jim", 
    "Joe"]})

blacklist = pd.DataFrame({'Domain': ["gmail.com", "outlook.com"]})

invalid_emails = tuple(blacklist['Domain'])

df = customer[customer['Email'].apply(lambda s: not s.endswith(invalid_emails))]

print(df)

输出 -

             Email First Name
0  [email protected]        Bob
1  [email protected]        Jim

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python Pandas isin返回索引

来自分类Dev

Python,Pandas:使用类似 isin() 的功能,但不要忽略输入列表中的重复项

来自分类Dev

计算线性回归斜率矩阵(类似于相关矩阵)-Python / Pandas

来自分类Dev

Python Pandas:宽格式到长格式但不同 - 类似于反向虚拟列

来自分类Dev

匹配Python Pandas的多个短语

来自分类Dev

python pandas dataframe索引匹配

来自分类Dev

Python / Pandas-根据数据框中以下条件删除行(类似于删除重复项,但不相同)

来自分类Dev

如何在 python pandas 中展平数据框(可能类似于将单位矩阵转换为 1 的向量)

来自分类Dev

Python Pandas:连接包含null的pandas字符串

来自分类Dev

在python中有类似于scipy.spatial.distance.cdist的东西,但是位移(快速)?

来自分类Dev

比较Python Pandas DataFrames以匹配行

来自分类Dev

行与标准Python Pandas匹配的列的索引

来自分类Dev

Python Pandas - 将匹配行增加 1

来自分类Dev

基于列值匹配行python pandas

来自分类Dev

删除包含特定模式的行[Python / Pandas]

来自分类Dev

Python Pandas Series.isin 不起作用

来自分类Dev

C ++(类似于python列表)

来自分类Dev

类似于Python VBA的left()

来自分类Dev

Python Pandas:字符串包含和不包含

来自分类Dev

合并两个电子表格的Python代码类似于Excel中的“索引匹配匹配”功能

来自分类Dev

Istio VirtualService重写前缀的作用类似于完全匹配

来自分类Dev

Python Pandas-比较列文字并提供匹配的字数

来自分类Dev

选择3个连续值匹配条件的行-Python,Pandas

来自分类Dev

在Pandas DataFrame Python中匹配列并突出显示结果

来自分类Dev

Python Pandas匹配具有重叠坐标的行

来自分类Dev

Python / Pandas按ID查找并匹配列值并返回结果

来自分类Dev

Python Pandas为特定行匹配条件设置值

来自分类Dev

python pandas在列中获得不同的匹配项

来自分类Dev

在Pandas Dataframe单元中找到[Python列表]的匹配值总和?

Related 相关文章

  1. 1

    Python Pandas isin返回索引

  2. 2

    Python,Pandas:使用类似 isin() 的功能,但不要忽略输入列表中的重复项

  3. 3

    计算线性回归斜率矩阵(类似于相关矩阵)-Python / Pandas

  4. 4

    Python Pandas:宽格式到长格式但不同 - 类似于反向虚拟列

  5. 5

    匹配Python Pandas的多个短语

  6. 6

    python pandas dataframe索引匹配

  7. 7

    Python / Pandas-根据数据框中以下条件删除行(类似于删除重复项,但不相同)

  8. 8

    如何在 python pandas 中展平数据框(可能类似于将单位矩阵转换为 1 的向量)

  9. 9

    Python Pandas:连接包含null的pandas字符串

  10. 10

    在python中有类似于scipy.spatial.distance.cdist的东西,但是位移(快速)?

  11. 11

    比较Python Pandas DataFrames以匹配行

  12. 12

    行与标准Python Pandas匹配的列的索引

  13. 13

    Python Pandas - 将匹配行增加 1

  14. 14

    基于列值匹配行python pandas

  15. 15

    删除包含特定模式的行[Python / Pandas]

  16. 16

    Python Pandas Series.isin 不起作用

  17. 17

    C ++(类似于python列表)

  18. 18

    类似于Python VBA的left()

  19. 19

    Python Pandas:字符串包含和不包含

  20. 20

    合并两个电子表格的Python代码类似于Excel中的“索引匹配匹配”功能

  21. 21

    Istio VirtualService重写前缀的作用类似于完全匹配

  22. 22

    Python Pandas-比较列文字并提供匹配的字数

  23. 23

    选择3个连续值匹配条件的行-Python,Pandas

  24. 24

    在Pandas DataFrame Python中匹配列并突出显示结果

  25. 25

    Python Pandas匹配具有重叠坐标的行

  26. 26

    Python / Pandas按ID查找并匹配列值并返回结果

  27. 27

    Python Pandas为特定行匹配条件设置值

  28. 28

    python pandas在列中获得不同的匹配项

  29. 29

    在Pandas Dataframe单元中找到[Python列表]的匹配值总和?

热门标签

归档