2016-12-07 8 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]?彼らはないNaNをしているのように他のすべての行の値が有効であれば

+0

他の値はすべて有効ですか?あなたはどこにでもNaNを持たないのですか?あなたは 'df [pd.to_numeric(df ['event_duration']、errors = 'coerce')を実行することができます。notnull()]' – EdChum

答えて

1

、そしてあなたは、これはNaNに文字列を変換しますto_numericを使用して数値に列を変換することができ、あなたがして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+$")] 
関連する問題