Как найти частичную строку в кадре данных и вернуть определенную ячейку, используя Pandas? - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть фрейм данных с нестандартными столбцами (не та же самая информация полностью).Я хочу найти определенную фразу, которая может появиться или не появиться в некотором столбце строки, а затем вернуть значение следующей ячейки.Например:

A               B               C
How many?       5               Blah blah
Blah            How many?       7
How many?       13              Blah
Blah            Blah            Blah

Я пытаюсь выяснить, как искать фразу "Сколько?"а затем вернуть значение в следующую ячейку (5/7/13 / ноль)

Ответы [ 2 ]

0 голосов
/ 08 ноября 2018

Вместо этого используйте массив numpy для упрощения индексации:

mask = df.values == 'How many?'
your_list = [df.values[i, j+1] for i, j in zip(*np.where(mask)) if j < df.values.shape[1]-1]
# yourlist = ['5', '7', '13']
0 голосов
/ 08 ноября 2018

с логическим значением и shift

df[df.eq('How many?').shift(1,axis=1).fillna(False)]
Out[142]: 
     A    B    C
0  NaN    5  NaN
1  NaN  NaN    7
2  NaN   13  NaN
3  NaN  NaN  NaN

Обновление

s1=df.eq('How many?').shift(1,axis=1).fillna(False)
s2=df.eq('How many?')
df[s1|s2]
Out[154]: 
          A          B    C
0  How many?         5  NaN
1       NaN  How many?    7
2  How many?        13  NaN
3       NaN        NaN  NaN
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...