Python含NaN值DataFrame关键词匹配与数据提取求助
解决方案
- 定位关键词"walmart"所在行(忽略大小写匹配),获取起始索引
- 从起始索引的下一行开始,筛选所有"Jan Sales"的行,取第二个对应的索引
- 提取该索引的上一行数据
代码实现
import pandas as pd # 假设你的DataFrame为df # 1. 找到walmart所在行的索引(忽略大小写,排除NaN干扰) walmart_idx = df[df['Name'].str.contains('walmart', case=False, na=False)].index[0] # 2. 从walmart行之后筛选所有Jan Sales的行,取第二次出现的索引 jan_sales_indices = df.loc[walmart_idx+1:, 'Name'][df.loc[walmart_idx+1:, 'Name'] == 'Jan Sales'].index target_row_idx = jan_sales_indices[1] - 1 # 3. 提取目标行数据 target_data = df.loc[target_row_idx] print(target_data)
关键说明
na=False参数避免NaN值触发字符串匹配报错,确保只处理有效字符串walmart_idx+1限定查找范围从walmart行之后开始,符合需求jan_sales_indices[1]精准定位第二次出现的"Jan Sales",减1即可获取其上一行数据
内容的提问来源于stack exchange,提问作者rivas
相关产品推荐
相关产品推荐

