繁体   English   中英

如何使用Pandas在数据框中搜索部分字符串并返回特定的单元格?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM