【发布时间】:2020-06-25 13:23:03
【问题描述】:
给定以下数据框:
import pandas as pd
import numpy as np
np.random.seed(seed=1)
size=20
df = pd.DataFrame({"group":np.random.choice(["A","B","C"], size),
"exclude":np.random.choice(["Yes","No"], size),
"value":np.random.randint(0,5,size=20)}).sort_values(["group","value","exclude"])
对于每个组,我需要一个包含组小计的列,不包括特定行。我正在使用以下命令:
df["group_sum"] = df[(df.exclude=="No")].groupby("group")["value"].transform("sum")
很遗憾,排除记录的列是空的。为了填充它,我正在执行以下操作:
df["group_sum"] = df.groupby("group")["group_sum"].transform("max")
有没有办法把这两个语句合二为一?
【问题讨论】:
-
您期望的数据框是什么?
标签: python pandas dataframe filter group-by