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

2024-09-30 20:38:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有数据帧。这是一部分

        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

如何用类型过滤数据框? 通常我是用str.contains来做的,也许指定类似的东西是正常的 df[df.event_duration.astype(int) == True]?在


Tags: 数据orgnoneeventidmozilladfdomain
2条回答

您也可以使用regex。在

df[df["event_duration"].str.contains(r"^\d+$")]

如果所有其他行值都有效,因为它们不是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

这个:

^{pr2}$

不会工作,因为字符串将引发ValueError异常,因为无法转换字符串

相关问题 更多 >