我有数据框。这是一部分

        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异常,因为字符串无法转换

09-06 15:25