Python AttributeError:“ Series”对象没有属性“ isdigit”

时间:2019-03-11 19:16:32

标签: python pandas dataframe

如果行/列包含数字,我尝试将数字替换为''空白。我尝试了以下方法,它一直抱怨isdigit不存在?我尝试将列转换为字符串,但无济于事。还有其他运算符可用于熊猫数据框吗?

data = ['123567','1547892','2547879','ABC','3D']
df1 = pd.DataFrame(data)
df1.columns = ['col1']

df1.col1 = str(df1.col1)
if len(df1.col1) < 8 and df1.col1.isdigit(): # errors
    df1.col1 == ''
    print(df1)

寻找这样的输出:

col1
0   
1   
2   
3   ABC
4   3D

1 个答案:

答案 0 :(得分:1)

要访问系列中的字符串方法,您需要通过the .str attribute of Series

df1.col1.str.isdigit()

有关文档,请参见Series.str.isdigit()

您可以将其用作布尔索引并直接分配给所选行:

df1.col1[df1.col1.str.isdigit()] = ''

请参见Working with Text Data

请勿在{{1​​}}语句中使用df1.col1.str.isdigit(),因为布尔数组本身不是True或False,它是布尔值数组,因此如果使用,将抛出if在布尔上下文中。

演示:

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all()