如果行/列包含数字,我尝试将数字替换为''空白。我尝试了以下方法,它一直抱怨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
答案 0 :(得分:1)
要访问系列中的字符串方法,您需要通过the .str
attribute of Series
:
df1.col1.str.isdigit()
有关文档,请参见Series.str.isdigit()
。
您可以将其用作布尔索引并直接分配给所选行:
df1.col1[df1.col1.str.isdigit()] = ''
请勿在{{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()