在Python/Pandas中添加lead_value列及筛选含冒号type的DataFrame
解决方案
1. 添加lead_value列
由于未看到你提及的图片,这里假设lead_value的逻辑为:将最近的上方type列包含":"的行对应的value值,填充到后续行中;type自身含":"的行,lead_value设为缺失值。实现代码如下:
import pandas as pd ori_df = pd.DataFrame([['a','1'],['w:','z'],['t','6'],['f:','z'],['a','2']], columns=['type','value']) # 先提取type含":"的行的value,其余行设为缺失值 ori_df['lead_value'] = ori_df.loc[ori_df['type'].str.contains(':'), 'value'] # 向前填充缺失值,把标记值传递给后续行 ori_df['lead_value'] = ori_df['lead_value'].ffill() # 将type含":"的行的lead_value重置为缺失值 ori_df.loc[ori_df['type'].str.contains(':'), 'lead_value'] = pd.NA
处理后的结果:
type value lead_value 0 a 1 <NA> 1 w: z <NA> 2 t 6 z 3 f: z <NA> 4 a 2 z
如果你的lead_value逻辑不同,比如需要向后填充或其他规则,可以修改填充方式或标记逻辑。
2. 筛选type含":"的行
使用字符串匹配结合布尔索引即可快速筛选:
filtered_df = ori_df[ori_df['type'].str.contains(':')]
筛选结果:
type value 1 w: z 3 f: z
内容的提问来源于stack exchange,提问作者anderwyang
相关产品推荐
相关产品推荐

