2016-02-12 2 views
0

Я использую pandas (Python) для извлечения некоторых данных из листа excel. В настоящее время я написал код, который проходит через каждую колонку и, если он находит текст он возвращает мне весь столбец:Pandas: получить содержимое строки после определенного слова

def getTextData(self, dataframe, getText): 

     for col in dataframe: 
      for cellvalue in dataframe[col]: 
       if getText == cellvalue: 
        #print dataframe[col] 
        return cellvalue 

Однако я не могу понять следующую проблему: Я только хочу содержимое строки после того, как будет возвращено слово getText.

Может ли кто-нибудь помочь, пожалуйста?

Спасибо

ответ

0

Вы можете использовать contains:

print df 
    a b 
0 a b 
1 f v 

print df['a'].str.contains('a') 
0  True 
1 False 
Name: a, dtype: bool 

print df[df['a'].str.contains('a')] 
    a b 
0 a b 

print df.b[df['a'].str.contains('a')] 
0 b 
Name: b, dtype: object 

EDIT:

IIUC вы можете использовать contains с shift и fillna:

print df 
    a b 
0 a b 
1 f v 
2 i k 

print df['a'].str.contains('a') 
0  True 
1 False 
2 False 
Name: a, dtype: bool 

print df['a'].str.contains('a').shift().fillna(False) 
0 False 
1  True 
2 False 
Name: a, dtype: bool 

print df[df['a'].str.contains('a').shift().fillna(False)] 
    a b 
1 f v