[英]How to search for a partial string in a dataframe and return a specific cell using Pandas?
我有一个带有非标准列的数据框(一直到下边都没有相同的信息)。 我想搜索可能不在行的某些列中出现的特定短语,然后返回后续单元格的值。 例如:
A B C
How many? 5 Blah blah
Blah How many? 7
How many? 13 Blah
Blah Blah Blah
我试图弄清楚如何搜索短语“多少?” 然后在下一个单元格(5/7/13 / null)中返回值
带布尔和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
请改用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']
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.