Pandas如何使用聚合计算列表x中列的总和和列表y中列的平均值

vyswwuz2  于 2022-11-05  发布在  其他
关注(0)|答案(1)|浏览(143)

我有一个包含60多个列的 Dataframe 。我想计算以'FLAG_'开头的列名的sum和以'RESPONSE_'开头的列名的mean。如何实现这一点?我尝试使用agg(),但没有成功。

注意:我正在尝试将此作为数据管道得一部分

sum_cols = [col for col in df.columns if 'FLAG_' in col]
mean_cols = [col for col in df.columns if 'RESPONSE_' in col]
dict_ = {tuple(sum_cols): 'sum', tuple(mean_cols): 'mean'}
df = df.groupby('ID').agg(dict_)

但是我得到了错误,因为在选择列时,它应该是一个列表而不是元组。因为它是一个字典,我不能将列表作为键传递。

KeyError: "Column(s) [array([#<All the FLAG_ columns listed>], dtype=object)] do not exist"
wj8zmpe1

wj8zmpe11#

sum_cols = [col for col in df.columns if 'FLAG_' in col]
    mean_cols = [col for col in df.columns if 'RESPONSE_' in col]
    dict_ = {col:'sum' for col in sum_cols}
    dict_.update({col:'mean' for col in mean_cols})
    df = df.groupby('ID').agg(dict_)

相关问题