2017-12-21 5 views
1

Ich bin neu in Pandas und ich habe einen Datenrahmen, dfFilterung Datenrahmen unter Verwendung von Schwellenpegeln Pandas

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% 

Wie kann ich den Datenrahmen filtern, df basierend auf (50.00% und höher) und nicht die Spalte pct eine machen Index?

Antwort

2

Sie können boolean indexing verwenden, aber für Zustand benötigen % zu entfernen, indem str[:-1] Schneiden oder durch replace:

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

Oder:

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

Ich habe versucht, monatlich zu gruppieren, um die Werte des zum Monat gehörenden Pkt. Zu zählen. Ich habe diesen Code verwendet: – Bode

+0

df2 = df.groupby ([pd.Group (key = 'df.index', freq = '1M')]). Df ['pct']. Size() drucken (df2) – Bode

+0

aber ich bekomme: KeyError: 'Der Grouper-Name df.index wird nicht gefunden' – Bode

1

Import Pandas df = df [df ["pct"]> 50,00]

+1

Hmmm, bist du sicher? Es gibt '%', also ist Ihre Lösung fehlgeschlagen. – jezrael

Verwandte Themen