首页 > 解决方案 > 将包含某个字符串的所有项目放在另一列的数据框中

问题描述

我现在拥有的数据框看起来像这样

In[1]: df
Out[1]:
index    yesterday    today    tomorrow   
1        apple_1      banana_3 cherry_4   
2        pear_2       apple_4  blueberry_1 
3        kiwi_3       orange_6 banana_2   
4        apple_1      melon_3  banana_4  

我想记录所有的苹果并将其放在另一列/系列中,例如

index    yesterday    today    tomorrow    apple
1        apple_1      banana_3 cherry_4    apple_1
2        pear_2       apple_4  blueberry_1 apple_4
3        kiwi_3       orange_6 banana_2    nan
4        apple_1      melon_3  banana_4    apple_2
  1. IDK 哪一列将包含一个苹果
  2. IDK 苹果还有什么

谢谢您的帮助!

标签: pythonpandas

解决方案


尝试使用startswiththen wheremask then as nan 并执行ffill

df['new'] = df.where(df.apply(lambda x : x.str.startswith('apple'))).ffill(1).iloc[:,-1]
df
Out[149]: 
      yesterday     today     tomorrow      new
index                                          
1       apple_1  banana_3     cherry_4  apple_1
2        pear_2   apple_4  blueberry_1  apple_4
3        kiwi_3  orange_6     banana_2      NaN
4       apple_1   melon_3     banana_4  apple_1

推荐阅读