2017-12-21 3 views
1

내가 팬더 새로운 오전과 내가 dataframe을 가지고, 나는 dataframe를 필터링 할 수 있습니다 방법필터링 dataframe 사용하여 임계 값 레벨 팬더

Index    eventName  Count  pct  
2017-08-09    ABC   24  95.00%   
2017-09-09    CDE   140  98.50%   
2017-09-22    CDE   150  99.30%   
2017-10-19    DEF   200  20.00%   
2017-10-27    DEF   200  50.00% 

df 명령에 근거 (50.00 % 이상) 및 열 PCT의을하지 DF 색인?

답변

2

당신은 boolean indexing을 사용하지만 조건 str[:-1] 슬라이스 또는 replace에 의해 %를 제거해야 할 수 있습니다

df1 = df[df['pct'].str[:-1].astype(float) >= 50] 

또는를 :

df1 = df[df['pct'].replace('%','', regex=True).astype(float) >= 50] 

print (df1) 
     Index eventName Count  pct 
0 2017-08-09  ABC  24 95.00% 
1 2017-09-09  CDE 140 98.50% 
2 2017-09-22  CDE 150 99.30% 
4 2017-10-27  DEF 200 50.00% 
+0

월에 속한 pct의 값을 계산하기 위해 매월 그룹화하려고했습니다. 나는이 코드를 사용했다 : – Bode

+0

df2 = df.groupby ([pd.Grouper (key = 'df.index', freq = '1M')]) df [ 'pct'] size() print (df2) – Bode

+0

그러나 나는 얻는다 : KeyError : '그루퍼 이름 df.index가 발견되지 않는다' – Bode

1

수입 팬더를 DF = DF [df [ "pct"]> 50.00]

+1

흠, 확실합니까? '%'이 (가)있어 해결책이 실패했습니다. – jezrael