检查pandas dataframe列中的值是否为整数,如果不是,则将其写入列表

时间:2019-05-21 17:20:35

标签: python pandas integer

我有一个pandas数据框,其中的一列可能具有整数,浮点数,字符串等。我想遍历所有行,并检查每个值是否为整数,如果不是,我想创建一个有错误的列表值(非整数值)

我尝试过isnumeric(),但是无法遍历每行并将错误写入输出。我尝试使用iterrows(),但它将所有值都转换为float。

ID     Field1
1      1.15
2      2
3      1
4      25
5      and

预期结果:

[1.15,"and"]

1 个答案:

答案 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']