检查熊猫数据框列中的值是否为整数,如果不是则将其写入列表

Pad*_*123 1 python integer pandas

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

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

ID     Field1
1      1.15
2      2
3      1
4      25
5      and
Run Code Online (Sandbox Code Playgroud)

预期结果:

[1.15,"and"]
Run Code Online (Sandbox Code Playgroud)

cs9*_*s95 8

如果“Field1”是一列字符串,则使用str.isdigit(仅对整数返回 True)并否定:

df.loc[~df['Field1'].str.isdigit(), 'Field1'].tolist()
# ['1.15', 'and']
Run Code Online (Sandbox Code Playgroud)

或者,如果列包含混合类型,请使用

df.loc[~df['Field1'].astype(str).str.isdigit(), 'Field1'].tolist()
# [1.15, 'and']
Run Code Online (Sandbox Code Playgroud)