我有以下数据框,我想在列水果中搜索苹果,如果找到苹果则显示所有行。
Before :
number fruits purchase
0 apple yes
mango
banana
1 apple no
cheery
2 mango yes
banana
3 apple yes
orange
4 grapes no
pear
After:
number fruits purchase
0 apple yes
mango
banana
1 apple no
cheery
3 apple yes
orange
答案 0 :(得分:1)
使用groupby
和filter
过滤包含'apple'的群组:
df['number'] = df['number'].ffill()
df.groupby('number').filter(lambda x: (x['fruits'] == 'apple').any())
df_out.assign(number = df_out['number'].mask(df.number.duplicated()))\
.replace(np.nan,'')
输出:
number fruits purchase
0 0 apple yes
1 mango
2 banana
3 1 apple no
4 cheery
7 3 apple yes
8 orange
答案 1 :(得分:0)
您似乎正在使用'number'
作为索引,因此我将假设这一点。
获取'apple'
所在的数字,然后切入:
idx = df.index[df.fruits == 'apple']
df.loc[idx]