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

用python dataframe[duplicate]中其他行中的关键字掩盖一个列值

华景明
2023-03-14
my dataframe, data, looks like this


ID        Query                                 email                    phone
1         hi                                    []                       []
2         email is johnsmith@gmail.com          [johnsmith@gmail.com]    []
3         phone no is 12345678790               []                       [12345678790]

I want to create a column called masked query which will look like this

ID        Query                                 email                    phone               masked_query
1         hi                                    []                       []                  [hi]
2         email is johnsmith@gmail.com          [johnsmith@gmail.com]    []                  [email is XXXXXXXXXXXXXXXXXXX]
3         phone no is 12345678790               []                       [12345678790]       [phone no is XXXXXXXXXX]

我使用regex函数创建了email和phone列,我需要创建一个函数来创建这个列'masked_query'并屏蔽数据,但我不知道如何继续屏蔽数据。感谢任何帮助。

共有1个答案

温凯
2023-03-14
from math import ceil

def masking(string, perc=0.6):
    chars = ceil(len(string) * perc)
    return f'{"X" * chars}{string[chars:]}'

df['masked_query'] = df.Query.apply(masking)

备选方案2

df['masked_query'] = df.Query.apply(lambda x:re.sub('\w+@\w+.com|\d+',len(re.findall('\w+@\w+.com|\d+',s)[0]) * 'X', x)
               if re.findall('\w+@\w+.com|\d+',x) else x)

不确定这是不是你要找的。

 类似资料:
  • 我正在寻找一种方法,防止在一个不需要关键词的地方匹配关键词。 看看下面的语法。“应用”和“输出”都是关键词。”OUTPUT'有一个包含任何字符的参数。 一切正常,但如果此参数包含单词APPLY,则会引发错误(外部输入APPLY预期规则_END)。 有办法解决这个问题吗?谢谢 示例文本 数字用户线

  • 问题内容: 有没有一种方法可以选择其中一列仅包含,但包含任意数量的预定义值的行? 我一直在使用它,但是它返回的行中我的列至少包含一个值(我知道这正是它应该做的)。 但我正在寻找一种方法,仅选择在关键字列中仅包含我的关键字的行。 关键字示例: 使用上述关键字,我希望返回前两个结果,而不是后两个: 我的专栏包含用逗号分隔的适用于该产品行的所有关键字的列表。 问题答案: 由于您将列表存储为包含逗号分隔列

  • 问题内容: 在PostgreSQL中,我有一个数据库,我打算进行以下表声明: 一切正常,除了在创建最后一个表(更正)时出现以下错误: 错误:没有唯一的约束匹配给定键的引用表“提交” 我对更正表的打算是对每个提交都有唯一的更正,但是一个提交可以(也可以不)具有更正。 我该如何解决这个错误?是设计问题还是表声明错误? 问题答案: 外键约束不关心所引用的列是否在引用另一列本身。但是引用的列 必须 是唯一

  • 我想在Pandas数据集中创建一个新列,基于另外两个列的值。 现在,应该如下所示: 有什么帮助吗?

  • 我们可以编写包含或不包含的代码,如下所示。 或 的实际用途是什么?。这是内存效率更高还是可读性更强?