python - 一种基于pandas条件过滤部分数据的解决方案

标签 python pandas algorithm

我有以下示例数据,我想过滤一条数据,当 (col1 = 'A' 和 col2 = '0') 我们希望将行保留到下一个 (col1 = 'A') .
我想使用 Pandas 数据框,但我不知道它是怎么回事。

df = pd.DataFrame({'col1': ['A', 'B', 'C'],  'col2': [0, 1]}) 

例如,我们有这样的数据
col1 col2
 A    0
 C
 A    1 
 B
 C
 A    1 
 B
 B
 C
 A    0 
 B 
 C
 A    1 
 B 
 C
 C 

我想要达到的结果是:
col1 col2 
 A    0 
 C 
 A    0 
 B 
 C 

非常感谢

最佳答案

我们先 groupby 'A' 开头的行块然后传播 col2 的第一个值到组的所有行。从这个结果中,我们取所有带有 0 的行在 col2 .

 df[df.groupby(df.col1.eq('A').cumsum()).col2.transform('first').eq(0)]

样本数据:
df = pd.DataFrame({'col1': list('ACABCABBCABCABCC'),
                   'col2': [0, None, 1, None, None, 1, None, None, None, 0, None, None, 1, None, None, None]}
                 ).astype({'col2': 'Int32'})

结果:
   col1  col2
0     A     0
1     C  <NA>
9     A     0
10    B  <NA>
11    C  <NA>

关于python - 一种基于pandas条件过滤部分数据的解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62113855/

相关文章:

python - 如何在我的seaborn条形图的第一个/最后一个条形周围添加空间?

python - 返回新数据框中的第一个匹配值/列名

用于调试日志记录的循环缓冲区

algorithm - 生成具有定义的最小和最大距离的随机点

c++ - 去除轮廓缺陷[OpenCV]

python - 使用Python分析文件中数据的类结构

python - pandas 中的 vlookup 应用 %LIKE%

python - 在 ActivePython-2.6 中安装 pyCurl?

python - 我们可以在使用 Google Drive API v2 时设置 urlfetch 截止日期吗?

python - 如何在 Python 中加载图像,但保持压缩状态?