我有一个pandas数据框,其中的一列可能具有整数,浮点数,字符串等。我想遍历所有行,并检查每个值是否为整数,如果不是,我想创建一个有错误的列表值(非整数值)
我尝试过isnumeric(),但是无法遍历每行并将错误写入输出。我尝试使用iterrows(),但它将所有值都转换为float。
ID Field1
1 1.15
2 2
3 1
4 25
5 and
预期结果:
[1.15,"and"]
答案 0 :(得分:2)
如果“ Field1”是一列字符串,请使用str.isdigit
(仅对整数返回True)并取反:
df.loc[~df['Field1'].str.isdigit(), 'Field1'].tolist()
# ['1.15', 'and']
或者,如果列包含混合类型,请使用
df.loc[~df['Field1'].astype(str).str.isdigit(), 'Field1'].tolist()
# [1.15, 'and']