我有数据框。这是一部分
member_id event_duration domain category
0 299819 17 element.yandex.ru None
1 299819 0 mozilla.org Программы
2 299819 4 vbmail.ru None
3 299819 aaa vbmail.ru None
如何用类型过滤df?
通常我用
str.contains
来做,也许指定类似df[df.event_duration.astype(int) == True]
? 最佳答案
如果所有其他行值都有效,因为它们不是NaN
,则可以使用to_numeric
将列转换为数字,这会将字符串转换为NaN
,然后可以使用notnull
过滤掉它们:
In [47]:
df[pd.to_numeric(df['event_duration'], errors='coerce').notnull()]
Out[47]:
member_id event_duration domain category
0 299819 17 element.yandex.ru None
1 299819 0 mozilla.org Программы
2 299819 4 vbmail.ru None
这个:
df[df.event_duration.astype(int) == True]
将无法正常工作,因为字符串将引发
ValueError
异常,因为字符串无法转换