【问题标题】:How to mask a column in a Pandas Dataframe while displaying it?如何在显示 Pandas 数据框中屏蔽列?
【发布时间】:2017-11-22 14:38:49
【问题描述】:

我有一个数据框:

    ID    Name         Salary($)
     0    Alex Jones     44,000
     1    Bob Smith      65,000
     2    Peter Clarke   50,000

为了保护此数据集中个人的隐私,我想在 Jupyter 笔记本中屏蔽此 Dataframe 的输出,如下所示:

    ID    Name         Salary($)
     0    AXXX XXXX     44,000
     1    BXX XXXXX     65,000
     2    PXXXX XXXXX   50,000

单独替换每个名称中的字符对我来说似乎很粗糙。一定有更好的方法吗?

【问题讨论】:

    标签: python pandas dataframe jupyter-notebook


    【解决方案1】:

    您可以通过使用str.replace替换每个名称的剩余部分中的所有字符的结果来连接第一个字符:

    In[16]:
    df['Name'] = df['Name'].str[0] + df['Name'].str[1:].str.replace('\w','X')
    df
    
    Out[16]: 
       ID          Name Salary($)
    0   0    AXXX XXXXX    44,000
    1   1     BXX XXXXX    65,000
    2   2  PXXXX XXXXXX    50,000
    

    【讨论】:

    • df['Name'] = df['Name'].str[0]+df['Name'].str[1:].replace('[\w]','X',regex=True) 这是我的答案 :( 我错过了。
    • [] 不是必需的,我认为 regex=True 不是必需的,因为它只是接受模式/正则表达式对象
    • 我同意这一点,因为我看到了你的回答。但我几乎拥有它。我没有用户 .str 所以我无法摆脱 regex=True :)
    • 这些天通常太忙而无法回答,但这似乎很有趣
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-03
    • 2014-08-11
    • 2019-08-14
    • 2015-09-12
    • 1970-01-01
    • 2018-06-01
    相关资源
    最近更新 更多