我在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
此方法仅检查数字值,如果需要检查整数,则需要额外的逻辑。