代码之家  ›  专栏  ›  技术社区  ›  skimchi1993

遍历抛出行以查看值是否为字母数字[重复]

  •  0
  • skimchi1993  · 技术社区  · 6 年前

    所以我有一个df,其中一列有各种字符串值

    col1
    
    Hi
    -Hi
    +hi
    =Hi
    

    col1
    
    Hi
    Hi
    hi
    Hi
    

    我知道我可以用那些非alpha字符替换str,但是为了将来证明这个脚本,我想使用类似isalpha()的东西。将来可能会有不同的非字母字符。

    2 回复  |  直到 6 年前
        1
  •  1
  •   jpp    6 年前

    您可以使用列表:

    df['col1'] = [''.join([i for i in x if i.isalpha()]) for x in df['col1']]
    
    print(df)
    
      col1
    0   Hi
    1   Hi
    2   hi
    3   Hi
    

    如果你有 NaN float 值,删除它们

    df.loc[pd.to_numeric(df['col1'], errors='coerce').notnull(), 'col1'] = ''
    
        2
  •  0
  •   Anna Iliukovich-Strakovskaia    6 年前

    也可以使用正则表达式:

    df['col1'].str.findall(r'[a-zA-Z0-9]+').apply(lambda x: ''.join(x))
    

    输出:

    0  Hi
    1  Hi
    2  hi
    3  Hi