如何筛选Pandas DataFrame中CODE REF列符合1X1A序列的行
Pandas筛选1X后接首个1A序列的实现方案
核心逻辑
符合保留条件的行满足以下任意一条即可:
- 当前行
CODE REF值为1X - 当前行
CODE REF值为1A,且前一行CODE REF值为1X
通过shift(1)方法可以直接获取上一行的列值,刚好匹配你的实现需求。
完整代码示例
import pandas as pd # 构造示例DataFrame,你可以替换为自己读取的数据源 data = {'CODE REF': ['1X', '1A', '1A', '1X', '1A', '1A', '1A', '1X', '1A']} df = pd.DataFrame(data) # 可选步骤:如果还没做首个1X开头的切片,先执行下面两行 first_1x_idx = df[df['CODE REF'] == '1X'].index[0] df = df.loc[first_1x_idx:] # 核心筛选逻辑 mask = (df['CODE REF'] == '1X') | ((df['CODE REF'] == '1A') & (df['CODE REF'].shift(1) == '1X')) result_df = df[mask] # 输出结果 print(result_df)
输出结果
CODE REF 0 1X 1 1A 3 1X 4 1A 7 1X 8 1A
内容的提问来源于stack exchange,提问作者PythonLearner
相关产品推荐
相关产品推荐

