python - Pandas 数据框的条件选择

标签 python pandas

我有给定形式的数据集

   time    color height weight value
1  t1      red    hr1     wr1     vr1
2  t1      red    hr1     wr1     vr1
3  t1      blue   hb1     wb1    vb1
4  t1      blue   hb1     wb1     vb1
5  t1      green  hg1     wg1     vg1
6  t1      green  hg1     wg1     vg1
7  t2      blue   hb2     wb2     vb2
8  t2      green  hg2     wg2    vg2
9  t2      red    hr2     wr2     vr2
10 t2      red    hr2     wr2     vr2
11 t3      red    hr3     wr3     vr3
12 t3      red    hr3     wr3     vr3
13 t3      green  hg3     wg3     vg3
14 t3      green  hg3     wg3     vg3
15 t3      blue   hb3     wb3     vb3
16 t3      blue   hb3     wb3     vb3

我想删除时间测量值,其中每种红色、蓝色和绿色的颜色计数值都不相同,均为 2。 在给定的代码片段中,应保留 t1 和 t3,并删除 t3 测量的所有行。

结果应该是:

 time   color height weight value
1  t1      red    hr1     wr1     vr1
2  t1      red    hr1     wr1     vr1
3  t1      blue   hb1     wb1    vb1
4  t1      blue   hb1     wb1     vb1
5  t1      green  hg1     wg1     vg1
6  t1      green  hg1     wg1     vg1
7  t3      red    hr3     wr3     vr3
8  t3      red    hr3     wr3     vr3
9  t3      green  hg3     wg3     vg3
10 t3      green  hg3     wg3     vg3
11  t3     blue   hb3     wb3     vb3
12  t3     blue   hb3     wb3     vb3

谢谢,

最佳答案

怎么样:

s = df.groupby(['time', 'color']).size()
s = s.unstack(0).eq(2).all()
valid_times = s.index[s]

print(df[df.time.isin(valid_times)])

   time  color height weight value
1    t1    red    hr1    wr1   vr1
2    t1    red    hr1    wr1   vr1
3    t1   blue    hb1    wb1   vb1
4    t1   blue    hb1    wb1   vb1
5    t1  green    hg1    wg1   vg1
6    t1  green    hg1    wg1   vg1
11   t3    red    hr3    wr3   vr3
12   t3    red    hr3    wr3   vr3
13   t3  green    hg3    wg3   vg3
14   t3  green    hg3    wg3   vg3
15   t3   blue    hb3    wb3   vb3
16   t3   blue    hb3    wb3   vb3

关于python - Pandas 数据框的条件选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52603467/

相关文章:

python - 在matplotlib中绘制实时图递归错误

python - 如何配置环境以使用 LLVM Clang 构建 python 嵌入式 c 代码

python - Pandas:将日期划分为 30 分钟间隔并计算平均值

python - 创建一个 Pandas 散点图,其中一个轴是索引

来自网站的 Python 抓取表?

python - 使用 cartopy 绘制来自 netcdf 的数据并不是在 0 经度处绘制数据

python - Pandas 首次发货后 3 天内累计发货的单位数

python - 聚合时间戳以查看我在 10 分钟的时间间隔内有多少

python - 如何使用 Tesseract 对图像进行 OCR

python - Pandas 中的自定义聚合表达式