【问题标题】:Pandas Python: Delete Rows of DF That Have ASCII LettersPandas Python:删除具有 ASCII 字母的 DF 行
【发布时间】:2015-03-30 11:53:27
【问题描述】:

我的数据框中有一列我想转换为数据类型 int。但是它会引发错误,因为某些行的条目中有字母。我想创建一个新的数据框,该数据框仅在此列中包含纯数字条目(或至少没有字母)的条目。

所以我的问题是:有没有办法做如下的事情,

df=df[df['addzip'].str.contains("a")==False]

但是有一个“a”在哪里的列表?请看下面的例子,

df=df[df['addzip'].str.contains(list(str(string.ascii_lowercase)+str(string.ascii_uppercase)))==False]

我知道这很可能与应用命令有关,但我想尽可能保持矢量化,这样这不是我想要的。到目前为止,我还没有在堆栈溢出的其他任何地方找到任何解决方案。

【问题讨论】:

    标签: python pandas dataframe contains letters


    【解决方案1】:

    只需使用正则表达式

    df = df[~df['addzip'].str.contains("[a-zA-Z]").fillna(False)]
    

    【讨论】:

    • @Alex 非常棒。这正是我一直在寻找的。 :) 工作得很好。我知道必须有一种方法可以做到这一点,而无需借助 apply 函数。非常感谢。
    猜你喜欢
    • 2020-04-25
    • 1970-01-01
    • 2018-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-20
    • 1970-01-01
    • 2016-07-20
    相关资源
    最近更新 更多