2016-12-07 125 views
1

我有數據幀。這是一個部分熊貓:使用數據類型過濾數據幀

 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

所有其他值是否有效?就像你在哪裏沒有'NaN'?你可以做'df [pd.to_numeric(df ['event_duration'],errors ='coerce')。notnull()]' – EdChum

回答

1

如果所有其他行值是有效的,如他們不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例外,因爲該字符串不能轉換

1

你也可以使用正則表達式。

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