繁体   English   中英

根据分组数据中的特定条件过滤行 - python

[英]Filter a row based on a certain condition from a grouped data - python

我有一个数据分组在一起的数据,但是在我的最终 output 中,我只需要 output 的分组数据,该分组数据满足在分组中包含 F 和 P 值的条件。 仅包含 F 或 P 的分组将被丢弃。 下表仅选择包含 F 和 P 的 b_name。从表 XXXX 中,将选择 ZZZZ、BBBB,其他不选择。

输入

在此处输入图像描述

Output

在此处输入图像描述

您可以按列b_name进行分组,然后使用filter仅保留那些同时在p_f列中具有FP值的组(对于每个组)。 接下来,使用drop_duplicates("b_name")删除重复的行并将p_f设置为所需的 output。

import pandas as pd

df = pd.read_csv("sample.csv", sep=";")
print(df)

df_group = df.groupby("b_name")
df_filter = df_group.filter(lambda x:
        ("F" in x.p_f.values) and ("P" in x.p_f.values)
      )
df_filter = df_filter.drop_duplicates("b_name")

df_filter["p_f"] = "FP"
print(df_filter[["b_id", "b_name", "p_f"]])

Output 来自df_filter

    b_id b_name p_f
0  29743   XXXX  FP
3  29751   ZZZZ  FP
6  30832   BBBB  FP

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM