簡體   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