gpt4 book ai didi

Python属性错误: 'Series' object has no attribute 'isdigit'

转载 作者:行者123 更新时间:2023-12-02 20:04:23 25 4
gpt4 key购买 nike

如果行/列包含数字,我正在尝试将数字替换为“”空白。我尝试了以下方法,它一直提示 isdigit 不存在?我尝试将列转换为字符串,但没有帮助。我可以将其他运算符用于 pandas 数据框吗?

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

最佳答案

要访问系列上的字符串方法,您需要通过 the .str attribute of Series 执行此操作:

df1.col1.str.isdigit()

参见Series.str.isdigit()获取文档。

您可以将其用作 bool 索引并直接分配给选定的行:

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

参见Working with Text Data .

不要在 if 语句中使用 df1.col1.str.isdigit(),因为 bool 数组本身不是 True 或 False,它是一个数组 bool 值,因此会抛出 ValueError: Series 的真值不明确。如果在 bool 上下文中使用,请使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()

演示:

>>> import pandas as pd
>>> data = ['123567','1547892','2547879','ABC','3D']
>>> df1 = pd.DataFrame(data)
>>> df1.columns = ['col1']
>>> df1
col1
0 123567
1 1547892
2 2547879
3 ABC
4 3D
>>> df1.col1[df1.col1.str.isdigit()] = ''
>>> df1
col1
0
1
2
3 ABC
4 3D

关于Python属性错误: 'Series' object has no attribute 'isdigit' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55108866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com