数据争吵在Python中



我在python中有一个dataframe df

Age     product
------------------
21          apple
11          orange
eighteen    mango
35          pineapple
35          122
NA          apple
30          -1

我只需要年龄的数字列,我将如何删除不是整数的行。

类似地,在产品中,我只需要字符串,如何删除不是字符串的值。

检查数字值的一种相当安全的方法是使用pd.isnumeric(..., errors='coerce'),然后检查nulls;由于pandas可以在单列中包含不同的数据类型,因此str.isnumeric如果值为实际数字类型,并且它不识别为数字,则返回NaN,因为Python不:

isnumeric = lambda s: pd.to_numeric(s, errors='coerce').notnull()
df[isnumeric(df['Age']) & ~isnumeric(df['product'])]
#  Age    product
#1  21      apple
#2  11     orange
#4  35  pineapple

此方法仅检查数字值,如果需要检查整数,则需要额外的逻辑。

相关内容

  • 没有找到相关文章

最新更新