我有数据框。这是一部分
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]
?
答案 0 :(得分:1)
如果所有其他行值都有效,因为它们不是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
由于字符串无法转换,因此字符串将引发characters.count
异常
答案 1 :(得分:1)
您也可以使用正则表达式。
df[df["event_duration"].str.contains(r"^\d+$")]
答案 2 :(得分:0)
您可以使用df.select_dtypes()。
df.select_dtypes("int")