2016-11-12 4 views
1

내가파이썬 팬더 - 문자열 유형이

df['A'].isnull().values.any() 

을 다음과 같이 dataframe '안양'의 열 'A'에서의 '유모'값을 확인하는 방법을 알고 컬럼에 존재하는지 확인하지만 내가 어떻게 할 수 '문자열'을 확인하십시오. 그리고 문자열 텍스트가 무엇인지 알지 못하며 어떤 행을 찾았습니까? 파이썬 3를 사용하는 경우

답변

1

, 당신이 목록의 이해와 numpy.any을 ​​사용할 수 있습니다

import numpy as np 

np.any([isinstance(val, str) for val in df['A']]) 

파이썬이 사용하는 경우 * 당신은 basestring와 str을 교체 할 필요가 있음을 보라.

0

내가 벡터화 사용하는 것이 팬더 방법 :

In [119]: pd.to_numeric(df.a, errors='coerce') 
Out[119]: 
0 1.00 
1 2.00 
2  NaN 
3 3.14 
4 2.71 
Name: a, dtype: float64 

In [120]: pd.to_numeric(df.a, errors='coerce').isnull() 
Out[120]: 
0 False 
1 False 
2  True 
3 False 
4 False 
Name: a, dtype: bool 

In [121]: df.loc[pd.to_numeric(df.a, errors='coerce').isnull()] 
Out[121]: 
    a   b 
2 aaa 2016-02-02 

: 숫자 있어야 열의 문자열에 대한

In [116]: df = pd.DataFrame({'a':[1,2,'aaa', 3.14, 2.71], 'b':['2016-01-01', 'bbb', '2016-02-02', '2016-03-03', 'ZZZ']}) 

In [117]: df 
Out[117]: 
     a   b 
0  1 2016-01-01 
1  2   bbb 
2 aaa 2016-02-02 
3 3.14 2016-03-03 
4 2.71   ZZZ 

In [118]: df.dtypes 
Out[118]: 
a object 
b object 
dtype: object 

검사 :

우리는 다음과 같은 DF가 가정 datetime-like 인 열의 문자열을 확인하십시오. :

In [122]: pd.to_datetime(df.b, errors='coerce') 
Out[122]: 
0 2016-01-01 
1   NaT 
2 2016-02-02 
3 2016-03-03 
4   NaT 
Name: b, dtype: datetime64[ns] 

In [123]: df.loc[pd.to_datetime(df.b, errors='coerce').isnull()] 
Out[123]: 
     a b 
1  2 bbb 
4 2.71 ZZZ