Pandas:过滤数据类型的数据帧

时间:2016-12-07 16:17:43

标签: python pandas

我有数据框。这是一部分

        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]

3 个答案:

答案 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")