python - 将包含某个字符串的所有项目放在另一列的数据框中
问题描述
我现在拥有的数据框看起来像这样
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
- IDK 哪一列将包含一个苹果
- IDK 苹果还有什么
谢谢您的帮助!
解决方案
尝试使用startswith
then where
mask 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
推荐阅读
- java - 如何根据模式替换任意位置的任意字符
- python - python复制excel数据
- ros - 用于传感器融合(IMU 和压力)数据的 Ros 包?
- c++ - CMake:CMAKE_REQUIRED_LIBRARIES 中的库顺序,用于在配置时测试最小程序
- reactjs - store.getState() 在 index.js 中返回空值
- angular - 迁移到 Angular 12 后 Cytoscape.js“超出最大调用堆栈大小”错误
- jquery - 反转div内儿童的计数
- magento - 为什么 default_head_blocks.xml 不删除 css 文件?
- pandas - 如何使用文档短语在 Spacy 中拆分并提取特定单词
- reactjs - reactjs - 如何在react js中显示路径在json文件中的图像?