簡體   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