2016-08-29 3 views
1

ich eine große Datenbank, in der ich alle Spalten auswählen möchten, die eine bestimmte Kriterien erfüllen:wählen Daten basierend auf einem String-Kriterien Python

Meine Daten sieht wie folgt aus:

Name a b c 
target-01 5196  24  24 
target-02 5950 150 150 
target-03 5598  50  50 
object-01 6558  44  -1 
object-02 6190  60  60 

I möchte alle Daten auswählen, deren Name mit target beginnt.

So das ausgewählte df wäre:

target-01 5196  24  24 
target-02 5950 150 150 
target-03 5598  50  50 

ich die Daten lese mit:

data = pd.read_csv('catalog.txt', sep = '\s+', header = None, skiprows =1) 

Wie kann ich die Daten Ich möchte wählen?

+0

Wenn Sie weitere Filterung Ihrer Daten anwenden möchten Sie können sich den Panda ansehen Bibliothek: http://pandas.pydata.org/ – Phidelux

Antwort

2

Verwenden str.startswith und boolean indexing:

print (df[df.Name.str.startswith('target')]) 
     Name  a b c 
0 target-01 5196 24 24 
1 target-02 5950 150 150 
2 target-03 5598 50 50 

Eine andere Lösung mit str.contains:

print (df[df.Name.str.contains(r'^target')]) 
     Name  a b c 
0 target-01 5196 24 24 
1 target-02 5950 150 150 
2 target-03 5598 50 50 

Letzte Lösung mit filter:

df.set_index('Name', inplace=True) 

print (df.filter(regex=r'^target', axis=0)) 
       a b c 
Name      
target-01 5196 24 24 
target-02 5950 150 150 
target-03 5598 50 50 

print (df.filter(regex=r'^target', axis=0).reset_index()) 
     Name  a b c 
0 target-01 5196 24 24 
1 target-02 5950 150 150 
2 target-03 5598 50 50 
Verwandte Themen