2016-12-12 10 views
0

列の文字列の内容に基づいて行をフィルタリング:パンダのデータフレーム:私は私のデータフレームにいくつかの行をフィルタリングするには、次のコードを使用し

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

しかし、私は次のエラー得た:

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' 

誰かが私が逃したものを知っていますか?ありがとう!

答えて

2

あなただけのパンダの文字列メソッドを使用するためにそこに.strを追加する必要があります。

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 
関連する問題