2016-12-07 1 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

regex도 사용할 수 있습니다.

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