2016-12-12 2 views
0

ich den folgenden Code verwenden, um einige Zeilen in meinem Datenrahmen heraus zu filtern:Pandas Datenrahmen: Filterung auf Zeilen basierend auf dem String-Inhalt einer Spalte

my_df_1 = my_df[my_df.col1.startswith('good_')] 

Aber ich habe folgende Fehler:

AttributeErrorTraceback (most recent call last) 
<ipython-input-3-dbd2d6731148> in <module>() 
----> 1 my_df_1 = my_df[my_df.col1.startswith('good_')] 

/usr/local/lib/python2.7/dist-packages/pandas/core/generic.pyc in __getattr__(self, name) 
    2742    if name in self._info_axis: 
    2743     return self[name] 
-> 2744    return object.__getattribute__(self, name) 
    2745 
    2746  def __setattr__(self, name, value): 

AttributeError: 'Series' object has no attribute 'starts with' 

Weiß jemand was ich verpasst habe? Vielen Dank!

Antwort

2

Sie müssen nur .str dort hinzufügen, um die Pandas String-Methoden verwenden:

In [12]: df = pd.DataFrame({'s': ['good_1', 'bad_1', 'good_2']}) 

In [13]: df 
Out[13]: 
     s 
0 good_1 
1 bad_1 
2 good_2 

In [14]: df['s'].str.startswith("good_") 
Out[14]: 
0  True 
1 False 
2  True 
Name: s, dtype: bool 

In [15]: df[df['s'].str.startswith("good_")] 
Out[15]: 
     s 
0 good_1 
2 good_2 
Verwandte Themen